编程学习总结

Servet和JSP学习总结(转载)

前天去面试,遇到一个搞技术的面试官。问了好多问题,好多没答上来,不是不会而是掌握的不够扎实,没有进行归纳和总结。最典型的是集合类的层次结构,Jsp内置对象之间的关系。这些问题不能说不会,而是不够扎实,没有站在一个系统的高度来看这些问题。虽然面试的不成功,但收获的还是挺大的。使我看到了自己学的还是很不够,很多东西要学习。面试主要是搞Web开发,使用三大框架:Struts,Spring,Hibernate。这半年都在搞安全了,搞的也是桌面应用程序,没有做Web开发,Java主要的优势还在于Web开发。面试回来后打算把三打框架好好看看。我相信我的学习能力,遗憾没有在面试官面前表现出来。下面是我照着张孝祥老师编写的《深入体会Javaweb开发内幕》写的。

Servelt就是由两个包组成javax.servlet和javax.servelt.http

前者装是基本的servet类,后者是与http有关的类。后者中大部分类都实现了前者的类。我们在写Servelt时很多都直接使用后者中的类。

GenericServlet实现了Servlet和ServletConfig接口。

HttpServlet继承了GenericServlet类

我们在写Servlet时继承HttpServlet。

ServletConfig对象可以获得Servlet的配置参数:如Web.xml中设置的初始化参数等通过Servlet.getServletConfig()获得ServletConfig对象。

ServletConfig对象中包括对ServletContext的引用。

ServletContext是Web应用程序中所有的Servelt共享,通过getServletContext()获得serveltContext对象。它的作用域是整个Web应用程序。所以它可以访问资源文件,可以使用相对路径。可以获得虚拟路径所映射的本地路径。

HttpServletResponse是ServletResponse子接口,用于响应请求。代表用于Http协议的响应消息对象。可以产生响应状态行、构造响应消息头(设置字符集编码)、创建响应正文等。

cookie的增加使用方法:HttpServletResponse.addCookie(Cookie)。

Servelt中文输出问题可以用下面语句解决:

response.setCharacterEncoding("GB2312");

response.setContentType("text/html;GB2312");

response.setLocale(new java.util.Locale("zh","CN"));

让浏览器定时刷新网页或跳转至其他页面

response.setHeader("Refresh","2");

response.setHeader("Refresh","2;URL=http://www.it315.org");

禁止缓存当前文档的内容可以用

response.setDateHeader("Expires",0);

response.setHeader("Cache-Control","no-cache");

response.setHeader("Pragma","no-cache");

创建响应正文:response.getOutputStream()和getWriter()

分别得到ServletOutputStream和PrintWriter对象,可以看到一个是字节流,一个是字符流。

请求重定向和请求转发:

请求重定向用RequestDispatcher.forward(),请求转发用HttpServletResponse.sendRedirect()。 RequestDispatcher通过ServletContext接口中的getRequestDispatcher方法获得。

区别在于重定向是调用别的Servlet来处理,对用户是透明的,而sendRedirect() 是将请求转发给到别的页面。重定向只能在同一个Web应用程序内资源内转发请求,而sendRedirect()可以在任意页面间转发。

区别RequestDispatcher.indlude()和RequestDispatcher.forward()。

indlude被调用者不能改变响应消息的状态码和消息头。forward方法中调用者和被调用者之间共享相同的 request对象和response对象。

RequestDispatcher.forward和HttpServletResponse.sendRedirect方法在调用它们之前都不能有缓冲区输出到客户端。缓冲区的内容会被清空。

HttpServletRequest是ServletRequest的子接口,它代表请求消息。

通过它的方法可以获得请求行的相关信息、网络连接信息、请求头信息、传递的参数等。

请求行:对于如下请求:

http://localhost:8080/it315/controller/one.jsp?param1=abc

下面方法可以得到如下信息:

request.getMethod() :GET

request.getRequestURI() :/it315/controller/one.jsp

request.getQueryString():param1=abc

request.getProtocol():http/1.1

request.getContextPath:/it315

request.getPathInfo:/one.jsp

request.getPathTranslated:C:\tomcat-5.5.4\webapps\it315\one.jsp

request.getServletPath: /controller

网络连接就是些IP地址,端口什么的,不看了。

请求头信息:可以获得指定名称的头字段的值,日期,Content-Type头字段,请求消息的实体部分的字符集编码等。

防盗链技术:

防止被人直接超链接内容,判断请求头referer字段是否来自本站。

获取请求参数:getParameter(String)

获取请求消息实体内容:与response对应,有获取请求消息实体内容的方法。request.getInputStream()和getReader()方法。分别表示字节流和字符流

利用请求域传递属性信息。方法是request.setAttribute()。然后将请求重定向forward到别的处理模块。

会话和状态管理

有两种方式Cookie和Session。Cookie保存在客户端,Session保存在服务端。形象的比喻是Cookie是商场发放的优惠卡,优惠卡上记录优惠政策。Session比喻为病历卡,医院为每个病人保留病历档案。病历卡上只填写了卡号。

Cookie是一个类,它通过new Cookie(String name,String value)实例化。request.getCookies()返回所有的Cookie。response.addCookie(Cookie cookie)。HttpSession是接口。Request.getSession()的到Session对象。

JSP

Jsp内置对象与Servlet中的类对应关系

application----> ServletContext

config -----> ServletConfig

session ----->HttpSession

request ----->HttpServletRequest

response ----->HttpServletResponse

page是Jsp被翻译成Servlet对象自身

out是JspWriter的实例,调用ServletResponse.getWriter()的到的PrintWriter将out对象的缓冲区内容写入到Servlet引擎提供的缓冲区中。

pageContext是javax.servlet.jsp.JspContext的子类,pageContext对象封装了当前JSP页面的运行信息,它提供了返回JSP页面的其他内置对象的方法。 由servelt中的关系,可以得到内置对象之间的关系。通过config可以获得application,通过session可以获得application。通过request可以获得session。通过pageContext可以获得所有的内置对象。

(请您对文章做出评价)

 

第二篇:远程学习总结

远程学习总结

在多年的教学实践中,亲历了我国教育改革的过程,讲过了每个阶段改革的课本,也更看清了我国教育改革的方向,同时也逐渐感觉自身需要不断学习,不断提高。远程培训学习给了我这样一个机会,也给了一个和名师专家交流的平台,受益颇深。

一、从教育实践上升到教育理论水平

大多教育工作者从事了一辈子教育,满腹的教育体会心得,但未必会出一本书供大家学习,一则没有想法,二则一切停留在实践阶段,对教育的认识并没有上升到理论阶段。在专家的讲座中,提到的的许多理论其实都是我们在教学实践中默默践行的,比如学习支架的构建需要了解学生,加强感情沟通,及时反馈总结等等,但我们很少将自己的这种做法写出来,从理论的角度来认识自己的教学行为。理论与实践的结合,既提升了对理论的认识,又指导了我们的实践教学,相得益彰,相互促进。

二、通过学习,学会了反思

专家讲座幽默风趣,举例广泛,引人深思。张大千收徒,徒弟再努力,也只能名冠张大千之后,而梵高拒收徒弟,造就的是梵高之上的“梵高”。从我们国家实际情况看,基本100%的人会选择前者,有高人指点,其成功之路必然近了许多,何乐而不为?!就如模仿名家写字,模仿率即便达到了以假乱真的地步,可翻过来想,又有哪一个字是属于自己的人。俗语说:“师傅领进门,修行在个人”,教师教会了学生知识,但没有教会学生学习的方法。正如“授之以渔”与“授之以鱼”的道理一样。作为教学一线的教师,更应该反思自己的教学行为。“霸占”讲台,“霸占”课上讲话的权利,学生如何体会学的乐趣?又如何体现在课堂中的自我价值?教会学生学习比教会学生知识更重要!

三、更注重自身修养

师德师爱是每个教师必须具备的基本职业素养。一个不热爱学生的老师怎么可能教好学生?学生又怎么可能喜欢他的课堂?绝对不可能!更谈不上教学成绩。在我们工作实践中,有可能不习惯老师的教学方法而讨厌老师,但如果老师给予这个学生关爱,比如主动询问学生知识学习情况,主动帮助这个学生,也许学生会因老师的爱而喜欢老师,进而喜欢老师的课堂。再比如一个封闭的学生,老师几句关爱的话语,使学生认识到自己并不是被大家拒之门外的一员,学习的积极性被调动起来,开始和老师交流自己学习的困惑,生活的烦恼,把老师当成自己知心朋友。学生大部分时间和老师在一起,所以老师的言行对学生的影响很大,一个微不足道的行为,可能会影响一群学生,并且影响还很深远。教室里有纸屑,当你走进教室轻轻地捡起放进了垃圾桶,勿需更多的言语,下次你再也不会看到教室里有纸屑。这就是师德的魅力!

相关推荐