在实际工作中,我们关于Servlet的使用基本上全部是基于Http这种协议的,而Servlet接口中本身并没有关于处理基于http协议请求的方法,所以,我们可以通过它的实现类来处理基于http协议的请求。
Servlet通常是通过http接受和响应来自客户端的请求,所以基于http协议发送的请求最多,而Servlet并没有提供,那么,我们怎样关联一个http的Servlet呢,我们可以通过它的实现类httpServlet来实现。在谈httpServlet之前,我们先来介绍这个GenericServle抽象类。这个抽象类实现了Servlet接口中的大多数方法,它在实现了Servlet接口之后又做了一些扩展,它定义了一个与协议无关的Servlet(GenericServlet是一个通用的与协议无关的Servlet)。
GenericServlet它主要实现了一下几个接口:
1.Servlet ;2.ServletConfig 3.Serializable;
我们主要关注HttpServlet这一块。httpServlet继承了GenericServlet;
HttpServlet(主要是用来处理http请求的):httpServlet的子类必须重写一个方法,该方法通常是一些这些方法之一:
doget():这个方法时给Get方式的请求做响应的;
dopost():这个方法是给post方式的请求做响应的;
几乎没有理由重写Service方法:Service通过标准http请求分发给每个http请求类型的处理程序方法(上面的dopost和doGet来处理)。(这一点可以通过查看service(HttpServletRequest req, HttpServletResponse resp);源码即可,这个方法最后调用的是dopost或doget或其他的请求方式。因为在父类中dopost和doget并没有实现有价值的东西,所以,在通过HttpServlet创建Servlet的时候,我们只需要重写doget和dopost方法就可以了。
)
需要注意的是:通过浏览器地址栏输入请求的时候,使用的请求是Get方式的请求。
Service方法在httpServlet有两个:分别是
1.
service(HttpServletRequest req, HttpServletResponse resp); |
2.
实际上是调用了Service(HttpServletRequest req,HttpServletResponse resp)方法;所以我们真正要学习的是第一种方法。 |
httpServlet中的两个init()方法:
1.init():用来做初始化操作的时候一般使用这个方法;
2.init(Servletconfig config):这个方法是给配置对象做初始化的