HttpServlet学习笔记

HttpServlet是javax.servlet.jar包下的一个抽象类,它继承了另一个抽象类GenericServlet,所以,我们需要继承HttpServlet这个类并重写里面的方法

根据http的请求方式,HttpServlet对应的方法主要有:

DELETE,GET,OPTIONS,POST,PUT和TRACE

POST
protected void  doPost(HttpServletRequest req, HttpServletResponse resp)
GET
protected void  doGet(HttpServletRequest req, HttpServletResponse resp)
PUT
protected void  doPut(HttpServletRequest req, HttpServletResponse resp)
DELETE
protected void  doDelete(HttpServletRequest req, HttpServletResponse resp)
OPTIONS
protected void  doOptions(HttpServletRequest req, HttpServletResponse resp)
TRACE
protected void  doTrace(HttpServletRequest req, HttpServletResponse resp)

下面我们看下它们之间的关系:


HttpServlet  
GenericServlet  
Servlet
 
ServletConfig
 


Servlet:所有的servlet都必须实现的接口,以下可以看到我们较熟悉的几个方法: init,service,destroy,getServletInfo和getServletConfig




ServletConfig:在初始化的时候,给servlet传递参数信息( A servlet configuration object used by a servlet container used to pass information to a servlet during initialization.),它包括4个方法:



上面还包含一个ServletContext接口( Defines a set of methods that a servlet uses to communicate with its servlet container, for example, to get the MIME type of a file, dispatch requests, or write to a log file. ),这个接口定义了大概51个方法,用于servlet 和servlet容器进行通信或交流,比如记录日志或转发请求等,like this:



GenericServlet:这个类是HttpServlet的父类,HttpServlet重写了它父亲的service方法。

HttpServlet:提供了一个抽象类给子类去创建一个http servlet ,子类的HttpServlet必须重写HttpServlet接口的至少一个方法,比如我们常用的doGet和doPost,下面截取一下HttpServlet的service方法:





HttpServlet容器响应Web客户请求流程如下:


1)Web客户向Servlet容器发出Http请求;


2)Servlet容器解析Web客户的Http请求;


3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;


4)Servlet容器创建一个HttpResponse对象;


5)Servlet容器调用HttpServlet的service方法,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;


6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;


7)HttpServlet调用HttpResponse的有关方法,生成响应数据;


8)Servlet容器把HttpServlet的响应结果传给Web客户。


创建HttpServlet的步骤——“四部曲”


1)扩展HttpServlet抽象类;


2)覆盖HttpServlet的部分方法,如覆盖doGet()或doPost()方法;


3)获取HTTP请求信息。通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串;


4)生成HTTP响应结果。通过HttpServletResponse对象生成响应结果,它有一个getWriter()方法,该方法返回一个PrintWriter对象。

(参考资料:http://www.cnblogs.com/panjun-Donet/archive/2010/02/22/1671290.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值