Servlet理解笔记分析和总结_第1页
Servlet理解笔记分析和总结_第2页
Servlet理解笔记分析和总结_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Servlet理解笔记学习步骤:1、理解servlet的使用步骤,从感性上去认识它。2、进一步了解它的机制。3、了解代码层面的实现在看JavaServletAPI过程的笔记:javax.servlet,.Servlet,这个类继承GenericServlet类,实现了java.io.Serializable的接口,它是个抽象类,给其子类创立一个Servlet去适应一个网站。而Servlet的子类必须重写至少一个方法,其中较为经常修改的方法有:1、如果你希望servlet支持的Get请求,重写doGet方法2、如果你希望servlet支持的Post请求,重写doPost方法3、如果你希望servlet不但可以处理数据,还可以处理文件,重写doPut方法。Put的调用和Post相似,它允许客户端把真正的文件存放在服务器上,而不仅仅是传送数据4、如果你希望servlet允许客户端删除服务器端的文件或者Web页面,重写doDelete方法,它与Put相似。5、如果你希望控制servlet生命周期所产生的资源,可以重写init和destroy方法6、如I果你希望servlet提供关自身的相关信息,可以调用或重写javax.servlet..Servlet类继承javax.servlet.GenericServlet类的getServletlnfo方法。一般情况下,我们不去重写类中的service方法。因为service是针对标准请求的处理方法,service根据每个标准请求的类型分派给其对应的处理方法(如上所述的以do开头的方法)。同样地,我们一般也不会去重写doOptions和doTrace方法。下面顺便说说上述的三个方法:一、serviceprotectedvoidservice(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException;publicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsServletException,lOException;这是一个Servlet的-specific方案,它分配请求到这个类的支持这个请求的其他方法。二、doOptionsprotectedvoiddoOptions(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException;被类这个类的service方法调用,用来处理一个OPTION操作。这个操作自动地决定支持哪一种方法。例如,一个Servlet写了一个Servlet的子类并重写了doGet方法,doOption会返回下面的头:Allow:GET,HEAD,TRACE,OPTIONS三、doTraceprotectedvoiddoTrace(ServletRequestrequest,ServletResponseresponse)throwsServletException,lOException;被javax.servlet..Servlet这个类的service方法调用,用来处理一个TRACE操作。这个操作的默认执行结果是产生一个响应,这个响应包含一个反映trace请求中发送的所有头域的信息。当你开发Servlet时,在多数情况下你需要重载这个方法。许多servlet经常运行于多线程服务器,这就意味着一个servlet必须处理当前请求和谨慎同步访问以实现资源的共享。共享的资源包括:内存中的数据(如实例、类变量等)和外部对象(如文件、数据库连接和网络连接等)。如果想了解更多关于在一个JAVA程序中处理多线程的信息可以去查看JavaTutorialonMultithreadedProgramming。javax.servlet..Servlet这个类只有一个构造函数就是publicServlet()该方法不用做任何处理,因为这个类是抽象类。在深入理解这个类的每个方法之前,我们先来了解一下javax.servlet.包中的ServletRequest和ServletResponse接口。ServletRequest接口继承了ServletRequest接口。继承ServletRequest这个接口是为了提供关于Servlet的请求信息。Servlet容器创立了一个ServletRequest对象,并且把这个ServletRequest对象当做一个参数传递给servlet的服务方法(如doGet,doPost等)。ServletRequest接口的实现类有javax.servlet..ServletRequestWrapperS^类。而且这个类也继承了这个类。当开奖者希望子类能够适配出servlet请求的时候,通过javax.servlet・.Se「vletRequestWrapper这个类可以方便实现ServletRequest接口。javax,se「vlet,・ServletRequestWrapper这个类实现了包装模式和装饰者模式。javax.servlet..ServletRequestWrapper^这两个类很类似,它们实现的接口不同:前者实现ServletRequest接口,后者实现ServletRequest接口。至于javax.servlet..ServletRequestWrapper-^「这两个类,ServletRequest接口与ServletRequest接口的深入研究,后期再续。上面我初步了解了ServletRequest接口,接下来了解一下ServletResponse接口。ServletResponse接口,它继承了ServletResponse接口,在发送一个响应的过程中提供特定功能。例如它有的方法访问Header和cookies。ServletResponse接口的实现类有ServletResponseWrappero待续*/*/*//*、_1_,4_1_,、_1_,、_1_」—_1_,-_1_,j[/、_1_,、_1_,-、_1_,、_]_/d_1_,、_1_,*/言归正传,现在马上进一步理解这个类的每个方法的细节。1>protectedvoiddoGet(ServletRequestreq,ServletResponseresp)throwsServletException,java.io.lOException参数说明:req,是一个ServletRequest对象,它包含由客户请求组成的servlet。resp,是一个ServletResponse对象,它包含servlet向客户发送的响应。doGet方法通过javax.servlet,.Servlet这个类的service方法被服务器调用,从而允许一个servlet处理GET请求。重写这个方法来支持一个GET请求,也自动地支持一个HEAD请求。HEAD请求是一个GET请求的响应,它的返回值没有body局部,只有请求的报头域。当重写这个方法的时候,读取请求数据,写入响应报头,获取响应的写入或输出流对象,最后写入响应数据。此时最好也包括处理ContentType和encoding。当使用一个文本输出流打印对象来返回响应的时候,在访问该文本输出流打印对象的之前,先设置好ContentType的值。在提交响应的之前,servlet容器必需写入报头,因为所有报头必需在协议传输响应主体(body)局部之前发送。可能的话,使用ServletResponse.setContentLength(int)方法来设置报头的Content-Length(内容长度)的值,让servlet容器使用一个持久连接向客户返回它的响应,从而改善性能。如果整个响应放在响应缓冲区内容长度将自动被设置。GET方法应该是安全的,也就是说,对被控制的用户负责

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论