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发送给客户的响应。