Servlet的注册和生命周期
Servlet的注册
添加注解`@WebServlet`来进行注册(推荐使用)
@WebServlet("/test")
public class TestServlet implements Servlet {
...实现接口方法
}
在`web.xml`中进行注册
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>com.example.webtest.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
实际上,Tomcat服务器会为我们提供一些默认的Servlet,也就是说在服务器启动后,即使我们什么都不编写,Tomcat也自带了几个默认的Servlet,他们编写在conf目录下的web.xml中,它可以帮助我们去访问一些静态资源,这也是为什么我们启动Tomcat服务器之后,能够直接访问webapp目录下的静态页面。
探究Servlet的生命周期
@WebServlet("/test")
public class TestServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) {
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
一个Servlet的生命周期为
- 首先执行构造方法完成 Servlet 初始化
- Servlet 初始化后调用 **init ()** 方法。
- Servlet 调用 **service()** 方法来处理客户端的请求。
- Servlet 销毁前调用 **destroy()** 方法。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
实际上在Web应用程序运行时,每当浏览器向服务器发起一个请求时,都会创建一个线程执行一次`service`方法,来让我们处理用户的请求,并将结果响应给用户
整个HTTP请求报文中的所有内容,都可以通过`HttpServletRequest`对象来获取
`ServletResponse`是服务端的响应内容,可以在这里填写我们想要发送给浏览器显示的内容