Servlet生命周期与简单案例

说明:本文章主要说明Servlet的生命周期。

Servlet的加载是在启动web容器后,去寻找部署文件也就是web.xml文件,读取部署文件中servlet标签,包括初始化参数(init-param)中配置。

1.servlet的init()方法在一个生命周期中只会执行一次,其中有参的init方法调用了无参的init方法,如果要重写init方法只需要重写无参的方法就行了,调用service前必须初始化完成。

2.每次请求来的时候都会调用service方法,在servlet中service只是判断请求的方法(一般不用重写),而去重写doget方法或dopost方法

3.destroy方法是销毁servlet实例用的,意味着servlet的生命周期结束!

总结:web启动  执行init()方法且只执行一次,每次请求都会执行service方法,项目结束执行destroy方法。

案例:

先在web.xml中配置

<web-app>      
    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app> 

创建HelloWorld类并继承HttpServlet

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException
  {
      // 执行必需的初始化
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");

      // 实际的逻辑是在这里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // 什么也不做
  }
}
输入访问  http://localhost:8080/hello就可以了。

猜你喜欢

转载自blog.csdn.net/liqingwei168/article/details/79524337