AServlet
Servlet是JavaWeb的组件之一,它属于动态资源。Servlet的作用是处理请求。
服务器会把接收到的数据交给Servlet来处理,所以在Servlet中需要:
- 接收数据请求
- 处理请求
- 完成响应
Servlet需要我们自己编写,但是在编写时需要实现javax.servlet.Servlet
接口,实现Servlet有三种方式: - 实现javax.servlet.Servlet接口
- 继承javax.servlet.GenericServlet类
- 继承javax.servlet.http.HTTPServlet类
Servlet接口
Servlet接口中有五个方法,其中三个方法是生命周期方法。它们的具体信息如下: - init
这个方法的完整写法是init(ServletConfig servletConfig)
。这个方法只会被调用一次,是当Servlet被创建时调用。方法的参数ServletConfig
对象是服务器servlet配置的对象,对应了web.xml文件中元素。 - service
这个方法的完整写法service(ServletRequest request,ServletResponse response)
,这个方法会在响应请求时被调用,每次处理请求都会调用一次service()方法。 - destroy
这个方法时在Servlet对象快被销毁时调用,这个方法也只会被调用一次。 - getServletConfig
这个方法是用于获取配置信息、无参,返回一个ServletConfig
对象 - getServletInfo
这个方法如名所示,具体为String getServletInfo()
。GenericServlet类
它是Servlet接口的实现类,添加了成员变量ServletConfig config;
用于保存init(ServletConfig config)
方法中的参数。也就是说在这个方法中完成类config变量的赋值。故为了保证赋值的完成,它提供了一个无参的init方法。
同时,GenericServlet还实现了ServletConfig接口,,可以直接调用getInitParameter()、getServletContext()、等servletConfig的方法。HTTPServlet类
这个类是GenericeServlet类的子类,它提供了对HTTP请求的特殊支持。
HTTPServlet类的方法service(HttpServletRequest request,HttpServletResponse response)是自己的方法,该方法的参数是由service方法的参数强转来的。但是我们在使用时也不用去重写这个方法,我们只需要去重写doGet或者doPost方法就可以。如果浏览器使用了你为重写的方法发送请求,则会返回405。web.xml配置
这个文件是指项目目录下的web文件,具体位置是Pname/WEB——INF/web.xml.每个servlet类都需要在web.xml中配置一个servlet和servlet-mapping。格式如下:1
2
3
4
5
6
7
8
9<servlet>
<servlet-name> </servlet-name>
<servlet-class> </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> </servlet>
<url-pattern>/someone</url-pattern>
</servlet-mapping>