过滤器,监听器,Servlet的区别

servlet是处理请求的

过滤器是用来拦截请求的。
在这里插入图片描述

package cn.itcast.web.listener;

import java.io.FileInputStream;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ContextLoaderListener implements ServletContextListener {
    /*
     * 监听ServletContext对象创建的   ServletContext对象在服务器启动后自动创建
     * 在服务器启动后自动调用
     */
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //加载资源文件
        //1.获取ServletContext对象
        ServletContext servletContext=sce.getServletContext();
        //2.加载资源文件
        String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");

        //3.获取真实路径
        String realPath = servletContext.getRealPath(contextConfigLocation);

        //4.加载进内存
        try{
            FileInputStream fis = new FileInputStream(realPath);
            System.out.println(fis);
        }catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("ServletContext对象被创建了。。。");
    }
    
    /*
     * 在服务器关闭后,ServletContext对象被销毁。当服务器正常关闭后该方法被调用
     */
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println(" ServletContext对象被销毁了");
    }
}

当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet

过滤器的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Dome2</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>AServlet</servlet-name>
    <servlet-class>com.jiayifan.AServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AServlet</servlet-name>
    <url-pattern>/AServlet</url-pattern>
  </servlet-mapping>
  <filter>
    <filter-name>AFilter</filter-name>
    <filter-class>com.jiayifan.filter.AFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>AFilter</filter-name>
    <!-- 这里的url-pattern配置的是过滤器的过滤对象,一般配置为/*表示都过滤 -->
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

在这里插入图片描述
参考文章:https://blog.csdn.net/q982151756/article/details/79473970
参考文章:https://blog.csdn.net/q982151756/article/details/79455382

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值