1、Listener

1、简介

  • Listener监听器是javaWeb的三大组件之一。JavaWeb的三大组件分别是Servlet程序,Filter过滤器,Listener监听器
  • Listener它是JavaEE的规范,就是接口
  • 监听器作用,监听某些事物的变化。

    2、ServletContextListener监听器

  • ServletContextListener可以监听ServletContext对象的创建和销毁,监听到ServletContext的创建和销毁

    1. public interface ServletContextListener extends EventListener {
    2. void contextInitialized(ServletContextEvent var1);
    3. void contextDestroyed(ServletContextEvent var1);
    4. }

    3、如何使用ServletContextListener监听器监听ServletContext对象

    使用步骤

  • 编写一个类取实现ServletContextListener

  • 实现其两个回调方法
  • 到web.xml中去配置监听器

    1、创建监听器

    public class MyServletContextListener implements ServletContextListener {
      @Override
      public void contextInitialized(ServletContextEvent servletContextEvent) {
          System.out.println("创建");
          ServletContext servletContext = servletContextEvent.getServletContext();
          String yes = servletContext.getInitParameter("yes");
          System.out.println(yes);
      }
    
      @Override
      public void contextDestroyed(ServletContextEvent servletContextEvent) {
    
      }
    }
    

    2、web.xml配置

    ```xml yes v1

com.atguigu.lestener.MyServletContextListener

<a name="XVObh"></a>
## 3、日志:
```shell
警告: Unknown version string [4.0]. Default version will be used.
创建
v1
[2021-08-14 03:38:55,606] Artifact cookie:war exploded: Artifact is deployed successfully
[2021-08-14 03:38:55,606] Artifact cookie:war exploded: Deploy took 367 milliseconds
八月 14, 2021 3:39:04 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /Library/tomcat7/webapps/manager
八月 14, 2021 3:39:04 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory /Library/tomcat7/webapps/manager has finished in 129 ms

2、请求转发

  • 客户端不知道服务器那边做了什么处理
  • 是服务器内部自己进行了转发

          RequestDispatcher requestDispatcher = req.getRequestDispatcher("/cookieServlet");
          requestDispatcher.forward(req,resp);
    

    3、重定向

  • 服务端会发送状态码302告诉客户端需要去重定向,重定向的地址会告诉你 ```java //重定向 写法一 resp.setStatus(302); resp.setHeader(“Location”,req.getContextPath()+”/cookie.html”);

//重定向 写法二(推荐) resp.sendRedirect(req.getContextPath()+”/cookie.html”); ```