HttpServlet详解

来源:互联网 发布:计算机编程专业 编辑:程序博客网 时间:2024/05/17 23:17

HttpServlet详解

Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类.在javax.servlet.http包中定义了采用HTTP通信协议的HttpServlet类.

Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口.在Servlet接口中定义了5个方法,其中有3个方法代表了Servlet的声明周期:

init方法,负责初始化Servlet对象
service方法,负责相应客户的请求
destory方法,当Servlet对象退出声明周期时,负责释放占有的资源

Servlet被设计成请求驱动的.Servlet的请求可能包含多个数据项,当Web容器接收到某个Servlet请求时,Servlet把请求封装成一个HttpServletRequest对象,然后把对象传给Servlet的对应的服务方法.

     HTTP的请求方式包括DELETE,GET,OPTIONS,POST,PUT和TRACE,在HttpServlet类中分别提供了相应的服务方法,它们是,doDelete(),doGet(),doOptions(),doPost(), doPut()和doTrace().

--------------------------------------------------------------------

下面介绍HTTP请求和响应,一个HTTP请求包含请求方法,请求URL,头字段和请求体.HTTP1.1定义了下面的请求方法:

     1. GET      :获取由请求URL标识的资源
     2. POST     :向Web服务器发送无限制长度的数据
     3. PUT      :存储一个资源到请求的URL
     4. DELETE   :删除由URL标识的资源
     5. HEAD     :返回URL标识的头信息
     6. OPTIONS :返回服务器支持的HTTP方法
     7. TRACE    :返回TRACE请求附带的头字段

     HTTP响应包括响应码,头字段和响应体.HTTP协议要求响应码和所有的头字段都在任何响应体之前返回.

--------------------------------------------------------------------

     下面就对Servlet各个服务方法做以介绍.

     1. doGet()   :调用服务器的资源,并将其作为响应返回给客户端.doGet()调用在URL力显示正在传送给Servlet的数据,这在系统的安全方面可能带来一些问题,比如说,用户登录市,表单里的用户名和密码需要发送到服务器端,doGet()调用会在浏览器的URL里显示用户名和密码.
     2. doPost() :它用于把客户端的数据传给服务端,使用它可以隐藏方式给服务器端发送数据.Post适合发送大量数据.
     3. doPut()   :调用和Post相似,它允许客户端把真正的文件存放在服务器上,而不仅仅是传送数据.
     4. doDelete() :它允许客户端删除服务器端的文件或者Web页面.它的使用也非常少.
     5. doHead() :它用于处理客户端的Head调用,并且返回一个response.当客户端只需要直到响应的Header时,它就发出一个Header请求.这种情况下客户端往往关心响应的长度和响应的MIME类型.
     6. doOptions():它用于处理客户端的Options调用,通过这个调用,客户端可以获得此Servlet支持的方法.如果Servlet覆盖了doPost()方法,那么将返回:
             Allow:POST,TRACE,OPTIONS,HEAD
一般情况下不需要覆盖这个方法.