- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaServlet详解
Class HttpServlet
被用来建立网站合适的HTTP servlet是继承的一个抽象类,HttpServlet的子类必须重写如下的方法中的一个.
doGet方法
doPost方法
doPut方法
doDelete方法
init and destroy方法: 对servlet生命期中资源进行管理.
getServletInfo: servlet用来提供自身信息的方法.
没有必要重写service方法, service方法用来管理标准的HTTP请求,它将根据每个HTTP请求的类型,将他们派发给不同的处理方法.
同样没有必要重写doOption和doTrace方法.
Servlet一般典型的运行在多线程的服务器上, 因此必须注意,servlet必须处理并发请求并且谨慎同步对共享资源的访问. 共享资源包含内存数据,比如实例或类变量和外部对象,如文件,数据库连接,和网络连接等.
doGet方法:
protected void doGet HttpServletRequest req, HttpServletResponse resp throws ServletException, IOException
被服务器 通过service方法 调用,该方法使servlet能够处理GET请求.
重写该方法支持GET请求,同样自动支持HTTP HEAD请求. HEAD请求是一种只返回头部而不返回响应体的GET方法.
重写这个方法的时候,读取request的数据,填写响应头部,获取响应的writer或output stream对象,最后, 写出响应数据. 最好包含内容类型和编码. 当使用PrinterWriter对象返回response的时候, 在访问PrintWriter的之前, 设置好内容类型.
servlet container必须再提交响应之前填写头部, 因为在HTTP中, 头部必须再response body之前发送.
尽可能的, 设置Content-Length头 使用ServletResponse.setContentLength int 方法 , 允许servlet container使用持久的的连接返回到客户端的响应, 提交性能. 如果整个响应小于response buffer, content length将自动设置.
当使用HTTP 1.1 chunked encoding which means that the response has a Transfer-Encoding header , 不要设置Content-Length.
GET方法应该是安全的,即,对于处理响应的用户不应该有任何的副作用. 如果客户端想要改变存储的数据, 请求应该使用其他的HTTP方法.
GET方法应该是幂等的,即它可以安全的重复.让方法安全的措施,同样让方法幂等. 例如,查询操作是安全且幂等的,但是在网络购物或修改数据,既不是安全的也不是幂等的.
如果请求的格式不正确,doGet方法应该返回HTTP Bad Request消息.
参数: req: HttpServerlet对象, 包含客户端到这个servlet的请求.
resp: 一个HttpServletResponse对象,包含一个从servlet到client的响应.
getLastModified HttpServletRequest req :
返回HttpServletRequest对象的最后更改时间. 如果时间未知,将返回一个负数.
支持HTTP GET方法且能快速决定最后修改时间的Servlet应该重写这个方法. 这可以使browser和proxy caches工作更有效率,减小server和network资源的负担.
req: 发送给servlet的HttpServletRequest对象.
doHead
protected void doHead HttpServletRequest req, HttpServletResponse resp :
处理从service方法获得的request, 如果客户端只想获得响应的头部,例如: Content-Type或Content-Length, 客户端将使用HEAD方法. HTTP HEAD方法将统计响应中输出的字节数来设置Content-Length头部的精确值.
重写该方法,可以避免计算响应体,直接设置响应头,提高性能. 确保doHead方法是安全和幂等的.
如果HTTP HEAD请求的格式不对,那么应该返回HTTP Bad Request消息.
req-发送到servlet的请求对象.
resp-servlet用来返回给client头部信息的response对象.
doPost方法: ser
文档评论(0)