Servlet的相关类和接口

 
1.HttpServlet
    HttpServlet 类是一个抽象类,可以从该类派生出一个子类来实现一个 HttpServlet ,接受来自 Web 站点的请求(该请求来自访问该 Web 站点的客户浏览器),并将处理后的响应结果发回 Web 站点( Web 站点再将响应结果发送给客户浏览器),在 HttpServlet 的子类中,必须至少重载下表中的其中一种方法。
方法名
用途
doGet
如果 Servlet 支持 Http GET 请求,用于 Http GET 请求
doPost
如果 Servlet 支持 Http POST 请求,用于 Http POST 请求
doPut
如果 Servlet 支持 Http PUT 请求,用于 Http PUT 请求
doDelete
如果 Servlet 支持 Http DELETE 请求,用于 Http DELETE 请求
init destroy
如果需要管理 Servlet 生命周期内所持有资源,可以重载这两个方法
通常,不重载 service 方法,对于上表中的每一种 HTTP 请求, service 方法通过分派它们到相应的 Handler 线程( doXXX 方法)来处理这些标准的 HTTP 请求。
同样地,通常也不重载 doOptions doTrace 方法, service 方法通过分派它们到 doTrace doOptions 来支持 HTTP1.1 TRACE OPTIONS
Servlet 通常运行在多线程的服务器中,因此,所编写的 Servlet 代码必须能够处理并行请求和对数据资源的同步访问。共享资源包括内存中的数据(例如:实例或类变量)和外部对象(例如:文件、数据库连接或网络连接)。
Protected void doGet(HttpServletRequest req,HttpServletResponse resp)
 throws ServletException,IOException
service 方法授并处理 HTTP GET 请求。 GET 方法允许客户读取来自 Web 服务器的信息,客户通过传递一个带 URL 的查询字符串可以告诉服务器它需什么信息。
重载支持 GET 请求的 doGet 方法还将自动支持 HTTP HEAD 请求, HEAD 请求也是一个 GET 请求,它得到的返回响应中只有一个请求头( header )字段,而没有响应信息的内容。
如果重载方法,应该从该请求读数据,在响应中设置整个 headers ,访问 PrintWriter 或输出流对象,最后写响应数据。当设置 headers 时,应确保包含 content type encoding 。如果使用 PrintWriter 对象返回响应,在存取 PrintWriter 对象之前必须设置 content type
Servlet 引擎必须在写响应数据之前写 headers ,因为在写数据之后 headers 随时都可能被刷新。
如果设置 Content-Length 头, Servlet 可以使用一个持久稳固的连接来将其响应返回给客户机,动态地改善性能。
如果请求的格式不正确, doGet 方法将返回一个 HTTP BAD_REQUEST 信息。
参数 req 为一个 HttpServletRequest 对象,含有客户的 Servlet 请求; resp 是一个 HttpServletResponse 对象,含有 Servlet 发送给客户的响应。   
Protected long getLastModified(HttpServletRequest req)
得到 HttpServletRuqest 对象的最后修改时间,自 1970 1 1 日以来的毫秒数,如果时间不知道,则返回一个负数。
参数 req 是发送给 Servlet HttpServletRequest 对象。
返回值为一个长整型,用于指描述 HttpServletRequest 对象的最后修改时间。
支持 HTTP Get 请求的 Servlet 引擎应该重载 getLastModified, 以便提供一个精确的对象修改时间,这可以使浏览器和代理服务器的缓存工作更效,减少服务器和网络资源的装载。
Protected void doPost(HttpServletRequest req,HttpServletResponse resp)
Throws ServletExeceptin,IOException
service 方法接受并处理 HTTP POST 请求。 HTTP POST 允许客户发送长度没有限制的数据给 Web 服务器,当发送诸如信用卡号等信息时非常有用。
如果重载该方法,应该人 HttpServletRequest 对象读数据,设置响应的 headers (包括 Content-Type Content-Encoding ),然后存取 PringWriter 或输出流对象,最后,使用 javax.servlet.servletOutputStream 对象写响应数据。
如果使用 PrintWriter 对象写响应数据,在存取 PringWriter 对象之前设置 Content-Type Servlet 引擎必须在响应数据之前写 headers ,因为当 Servlet 引擎开始写响应的体后, headers 随时可能会被刷新。
如果使用 HTTP1.1 块编码(意味着响应有一个 Transfer-Encoding Header , 则无需设置 Content-Length Header ,否则,应该设置内容的长度以便让 Servlet 利用 HTTP 的“ connection Keep Alive ”特征。
如果 HTTP POST 请求的格式不正确, doPost 方法将返回一个 HTTP BAD_AREQUEST 信息。
参数 req 为一个 HttpServletRequest 对象,含有客户的 Servelt 请求, resp 是一个 HttpServletResonse 对象,含 Servlet 发送给客户的响应。(未完,待续。)
 

你可能感兴趣的:(Servlet的相关类和接口)