Servlet生命周期

• 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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值