首页 > 其他分享 >2_过滤器的定义和配置

2_过滤器的定义和配置

时间:2023-03-08 15:14:19浏览次数:34  
标签:定义 myServlet1 resp 配置 Filter 过滤器 import servlet javax

 采用三步走策略使用filter

1开发后台资源 静态资源(html,css … …)或者动态资源(Servlet,Jsp)

2开发Filter

3在web.xml中配置Filter拦截哪些资源

开发Servlet

定义两个servlet

package com.msb.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * @Author: Ma HaiYang
 * @Description: MircoMessage:Mark_7001
 */
public class MyServlet1 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("myServlet1 执行了sevice方法");
        resp.setContentType("text/html;charset=UTF-8");
        resp.setCharacterEncoding("UTF-8");
        resp.getWriter().print("myServlet1响应的数据");
    }
}


 

package com.msb.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * @Author: Ma HaiYang
 * @Description: MircoMessage:Mark_7001
 */
public class MyServlet2 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("myServlet2 执行了sevice方法");
        resp.setContentType("text/html;charset=UTF-8");
        resp.setCharacterEncoding("UTF-8");
        resp.getWriter().print("myServlet2响应的数据");
    }
}

 

开发Filter


 

package com.msb.filter;
import javax.servlet.*;
import java.io.IOException;
/**
 * @Author: Ma HaiYang
 * @Description: MircoMessage:Mark_7001
 */
public class MyFilter implements Filter {
    // 初始化方法
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    // 作出过滤的方法
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("Filter doFilter 对请求作出过滤");
        // 通过一行代码 放行请求
        // 放行请求,交给过滤器链继续进行过滤 最后到达资源
        filterChain.doFilter(servletRequest, servletResponse);
        
        System.out.println("Filter doFilter 对响应作出过滤");
        
        servletResponse.getWriter().print("filter 追加一些数据");
    }
    // 销毁方法
    @Override
    public void destroy() {
    }
}

配置Filter


 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>myServlet1</servlet-name>
        <servlet-class>com.msb.servlet.MyServlet1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myServlet1</servlet-name>
        <url-pattern>/myServlet1.do</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>myServlet2</servlet-name>
        <servlet-class>com.msb.servlet.MyServlet2</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myServlet2</servlet-name>
        <url-pattern>/myServlet2.do</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>filter1</filter-name>
        <filter-class>com.msb.filter.MyFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>filter1</filter-name>
        <!--对那个/些资源的请求和响应进行过滤-->
        <!--<url-pattern>/myServlet1.do</url-pattern>-->
        <servlet-name>myServlet1</servlet-name>
        <servlet-name>myServlet2</servlet-name>
        <!--<url-pattern>/</url-pattern>
        <url-pattern>/*</url-pattern>-->
    </filter-mapping>
</web-app>


标签:定义,myServlet1,resp,配置,Filter,过滤器,import,servlet,javax
From: https://www.cnblogs.com/89564f/p/17192042.html

相关文章

  • 第五节:Webpack中的Source-map详解及最佳实操配置
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblog......
  • C++自定义比较函数的bug
    autocmp=[](intx,inty){returntrue;};priority_queue<int,vector<int>,cmp>q;报错第三个参数失配,需要一个类型,而不是对象。平时用sort直接传cmp习惯了,才发......
  • Vue 配置代理服务器
    js发ajax请求的几种方式-xhr(原生js自带):newXMLHttpRequest()xhr.open()xhr.send()-jQuery:$.get()$.post-axios(推荐)-fetch(windows对象自带):有致命......
  • 使用CMD命令导出和导入IIS站点配置信息
    有时候,我们可能有这个需求:某台服务器上的IIS配置了几十个网站项目,有没有一种方式可以导出这些配置,然后重装系统后(假设有这个业务场景)导入这些配置,避免一个一个的网站项目......
  • [java]-自定义注解
    aop+自定义注解注解基础1.Java注解的描述java注解又叫做java标注,是java的一种注释机制,在jdk5.0引入。其可以作用在类、方法、变量、参数和包上。另外,其可以通过反射来获......
  • ###安全运营的定义与核心目标
    转载公众号《微言晓意》,仅用于个人学习1、安全运营当下越来越流行的背景:安全运营变得越来越重要的原因,或者说是越来越需要安全运营的背景,主要包括四个方面:1)安全项目实施......
  • 轻量级CI/CD发布部署环境搭建及使用_07_jenkins配置pipeline
    轻量级CI/CD发布部署环境搭建及使用_07_jenkins配置pipeline尽自己的绵薄之力,为开源技术分享添砖加瓦1,设置pipeline  2,设置git仓库地址、用户名、密码 3,生成流......
  • Maven安装与配置
    Maven安装与配置下载安装下载地址:https://maven.apache.org/download.cgi下载后解压配置环境变量配置MAVEN_HOME配置Path变量win+R运行cmd,输入mvn-versio......
  • jeecg-boot中分页接口用自定义sql和list实现
    1、controller中@ApiOperation(value="分析仪工作状态和报警-3列-分页",notes="分析仪工作状态和报警状态-分页")@ApiImplicitParams({@ApiImpli......
  • prettier常用配置
    /*prettier的配置*/"prettier.printWidth":120,//超过最大值换行"prettier.tabWidth":2,//缩进字节数"prettier.useTabs":false,//缩进不使用tab,使用空格"......