Servlet生命周期可分为四个阶段:实例化,初始化,处理请求,销毁。
![](https://img.haomeiwen.com/i11342752/b8f16a975602080b.png)
之后每次访问都会调用service()方法
服务器关闭会调用destroy()方法
package com.neusoft.controller;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
//@WebServlet(name="HelloServlet",
// urlPatterns= {"Test20190512/HelloServlet"},
// displayName="HelloServlet",
// loadOnStartup=0,
// description="这是学习测试的Servlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public HelloServlet() {
// TODO Auto-generated constructor stub
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
System.out.println("初始化时,init()被调用!");
//获得servlet名称
System.out.println(config.getServletName());
//ServletConfig 可以获得ServletContext/application 作用域。
//ServletContext是随着服务器的开启 而存在,随服务关闭而停止的 生命周期最长的域
System.out.println(config.getServletContext());
config.getServletContext().setAttribute("url","jdbc://localhost:3306/mysql");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Servlet#getServletConfig()
*/
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("Hello service!方法");
System.out.println(request.getServletContext().getAttribute("url"));
}
}
网友评论