• init初始化,servlet启动之后,会首先调用init方法,但是init方法只调用一次。可以在web.xml文件中添加load-on-startup配置,完成启动服务创建servlet对象
• service方法,在访问servlet时,会执行service方法,完成业务处理
• destroy方法,访问结束,会调用destory方法,销毁所有servlet对象。
public class InitServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("初始化成功");//servlet初始化执行
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service方法被调用,完成业务处理");//在doget方法之前执行
super.service(req,resp);
}
@Override
public void destroy() {
System.out.println("destroy方法被调用,service对象被销毁");//停止tomcat执行
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取servlet上下文对象,作用范围是整个项目范围,
ServletContext servletContext = this.getServletContext();
System.out.println(servletContext.getContextPath());
//在context中存储数据
servletContext.setAttribute("context","共享数据");
//获取初始化参数
System.out.println("post方法被调用");
ServletConfig servletConfig = this.getServletConfig();
String username = servletConfig.getInitParameter("name");
//获取所有的初始化参数
Enumeration<String> initParameterNames = this.getInitParameterNames();
while (initParameterNames.hasMoreElements()){
String name = initParameterNames.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println(name+","+value);
}
response.setContentType("text/html;charset=utf-8");
PrintWriter printWriter = response.getWriter();
printWriter.println("<h1>"+username+"</h1>");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doget方法被调用");
this.doPost(request,response);
}
}
<servlet>
<servlet-name>InitServlet</servlet-name>
<servlet-class>com.tdu.servlet.InitServlet</servlet-class>
<!-- 配置servlet的初始化参数-->
<init-param>
<param-name>name</param-name>
<param-value>zhangsan</param-value>
</init-param>
<init-param>
<param-name>passward</param-name>
<param-value>123456</param-value>
</init-param>
<!-- 启动服务就创建servlet对象-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>InitServlet</servlet-name>
<url-pattern>/init</url-pattern>
</servlet-mapping>