JavaWeb的Filter过滤器应用

java过滤器(Filter) filter也称之为过滤器,它是javaWeb三大组件之一(Servlet程序、Listener监听器、Filter过滤器)既可以对请求进行拦截,也可以对响应进行处理。权限检查,日记操作、拦截请求、过滤操作、对请求字符设置编码。要想介绍filter,就必须介绍Filter中的三个方法。/*** web应用启动时,web服务器将创建Filter的实例对象,并调用init方法,读取web.xml的配置,完成对象的初始化功能, 阅读详情

过滤器应用案例

分ip统计网站的访问次数

ip

count

192.168.1.111

2

192.168.1.112

59

 

统计工作需要在所有资源执行前,那么就可以放到Filter中了。

我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的。

用什么东西来装载统计的数据。Map<String,Integer>

Map什么时候创建(使用ServletContextListener,在服务器启动时完成创建,并只在到ServletContext中),Map保存到哪里!(Map保存到ServletContext中!!!)

Ø  Map需要在Filter中用来保存数据

Ø  Map需要在页面使用,打印Map中的数据

 

思路分析

因为一个网站可能有多个页面,无论哪个页面被访问,都要统计访问次数,所以使用过滤器最为方便。

因为需要分IP统计,所以可以在过滤器中创建一个Map,使用IP为key,访问次数为value。当有用户访问时,获取请求的IP,如果IP在Map中存在,说明以前访问过,那么在访问次数上加1,即可;IP在Map中不存在,那么设置次数为1。

把这个Map存放到ServletContext中!

代码描述

index.jsp

  <body>

<h1>分IP统计访问次数</h1>

<table align="center" width="50%" border="1">

    <tr>

       <th>IP地址</th>

       <th>次数</th>

    </tr>

<c:forEach items="${applicationScope.ipCountMap }" var="entry">

    <tr>

       <td>${entry.key }</td>

       <td>${entry.value }</td>

    </tr>

</c:forEach>

</table>

  </body>

 

IPFilter

public class IPFilter implements Filter {

    private ServletContext context;

 

    public void init(FilterConfig fConfig) throws ServletException {

       context = fConfig.getServletContext();

       Map<String, Integer> ipCountMap = Collections

              .synchronizedMap(new LinkedHashMap<String, Integer>());

       context.setAttribute("ipCountMap", ipCountMap);

    }

 

    @SuppressWarnings("unchecked")

    public void doFilter(ServletRequest request, ServletResponse response,

           FilterChain chain) throws IOException, ServletException {

       HttpServletRequest req = (HttpServletRequest) request;

       String ip = req.getRemoteAddr();

 

       Map<String, Integer> ipCountMap = (Map<String, Integer>) context

              .getAttribute("ipCountMap");

 

       Integer count = ipCountMap.get(ip);

       if (count == null) {

           count = 1;

       } else {

           count += 1;

       }

       ipCountMap.put(ip, count);

 

       context.setAttribute("ipCountMap", ipCountMap);

       chain.doFilter(request, response);

    }

 

    public void destroy() {}

}

  <filter>

    <display-name>IPFilter</display-name>

    <filter-name>IPFilter</filter-name>

    <filter-class>cn.cloud.filter.ip.IPFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>IPFilter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

 

用户权限控制

RBAC à 基于角色的权限控制

l  tb_user

l  tb_role

l  tb_userrole

l  tb_menu(增、删、改、查)

l  tb_rolemenu

需求说明

我们给出三个页面:index.jsp、user.jsp、admin.jsp。

l  index.jsp:谁都可以访问,没有限制;

l  user.jsp:只有登录用户才能访问;

l  admin.jsp:只有管理员才能访问。

 

思路分析

设计User类:username、password、grade,其中grade表示用户等级,1表示普通用户,2表示管理员用户。

当用户登录成功后,把user保存到session中。

创建LoginFilter,它有两种过滤方式:

l  如果访问的是user.jsp,查看session中是否存在user;

l  如果访问的是admin.jsp,查看session中是否存在user,并且user的grade等于2。

 

代码描述

User.java

public class User {

    private String username;

    private String password;

    private int grade;

    //get…set方法

}

 

在UserService中创建一个Map,用来保存所有用户。Map中的key中用户名,value为User对象。

UserService.java

public class UserService {

    private static Map<String,User> users = new HashMap<String,User>();

    static {

       users.put("zhangSan", new User("zhangSan", "123", 1));

       users.put("liSi", new User("liSi", "123", 2));

    }

   

    public User login(String username, String password) {

       User user = users.get(username);

       if(user == null) return null;

       return user.getPassword().equals(password) ? user : null;

    }

}

 

login.jsp

  <body>

  <h1>登录</h1>

    <p style="font-weight: 900; color: red">${msg }</p>

    <form action="<c:url value='/LoginServlet'/>" method="post">

    用户名:<input type="text" name="username"/><br/>

    密 码:<input type="password" name="password"/><br/>

    <input type="submit" value="登录"/>

    </form>

  </body>

 

index.jsp

  <body>

    <h1>主页</h1>

    <h3>${user.username }</h3>

    <hr/>

    <a href="<c:url value='/login.jsp'/>">登录</a><br/>

    <a href="<c:url value='/user/user.jsp'/>">用户页面</a><br/>

    <a href="<c:url value='/admin/admin.jsp'/>">管理员页面</a>

  </body>

 

/user/user.jsp

<body>

<h1>用户页面</h1>

<h3>${user.username }</h3>

<hr/>

</body>

 

/admin/admin.jsp

<body>

  <h1>管理员页面</h1>

  <h3>${user.username }</h3>

  <hr/>

</body>

 

LoginServlet

public class LoginServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       request.setCharacterEncoding("utf-8");

       response.setContentType("text/html;charset=utf-8");

      

       String username = request.getParameter("username");

       String password = request.getParameter("password");

       UserService userService = new UserService();

       User user = userService.login(username, password);

       if(user == null) {

           request.setAttribute("msg", "用户名或密码错误");

           request.getRequestDispatcher("/login.jsp").forward(request, response);

       } else {

           request.getSession().setAttribute("user", user);

           request.getRequestDispatcher("/index.jsp").forward(request, response);

       }

    }

}

 

LoginUserFilter.java

  <filter>

    <display-name>LoginUserFilter</display-name>

    <filter-name>LoginUserFilter</filter-name>

    <filter-class>cn.cloud.filter.LoginUserFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>LoginUserFilter</filter-name>

    <url-pattern>/user/*</url-pattern>

  </filter-mapping>

public class LoginUserFilter implements Filter {

    public void destroy() {}

    public void init(FilterConfig fConfig) throws ServletException {}

 

    public void doFilter(ServletRequest request, ServletResponse response,

           FilterChain chain) throws IOException, ServletException {

       response.setContentType("text/html;charset=utf-8");

       HttpServletRequest req = (HttpServletRequest) request;

       User user = (User) req.getSession().getAttribute("user");

       if(user == null) {

           response.getWriter().print("您还没有登录");

           return;

       }

       chain.doFilter(request, response);

    }

}

 

LoginAdminFilter.java

  <filter>

    <display-name>LoginAdminFilter</display-name>

    <filter-name>LoginAdminFilter</filter-name>

    <filter-class>cn.itcast.filter.LoginAdminFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>LoginAdminFilter</filter-name>

    <url-pattern>/admin/*</url-pattern>

  </filter-mapping>

public class LoginAdminFilter implements Filter {

    public void destroy() {}

    public void init(FilterConfig fConfig) throws ServletException {}

 

    public void doFilter(ServletRequest request, ServletResponse response,

           FilterChain chain) throws IOException, ServletException {

       response.setContentType("text/html;charset=utf-8");

       HttpServletRequest req = (HttpServletRequest) request;

       User user = (User) req.getSession().getAttribute("user");

       if(user == null) {

           response.getWriter().print("您还没有登录!");

           return;

       }

       if(user.getGrade() < 2) {

           response.getWriter().print("您的等级不够!");

           return;

       }

       chain.doFilter(request, response);

    }

}

 

禁止资源缓存

浏览器只是要缓存页面,这对我们在开发时测试很不方便,所以我们可以过滤所有资源,然后添加去除所有缓存!

public class NoCacheFilter extends HttpFilter {

    public void doFilter(HttpServletRequest request,

           HttpServletResponse response, FilterChain chain)

           throws IOException, ServletException {

       response.setHeader("cache-control", "no-cache");

       response.setHeader("pragma", "no-cache");

       response.setHeader("expires", "0");

       chain.doFilter(request, response);

    }

}

POST和GET中文编码

servlet:

l  POST:request.setCharacterEncoding(“utf-8”);

l  GET:

Ø  String username = request.getParameter(“username”);

Ø  username = new String(username.getBytes(“ISO-8859-1”), “utf-8”);

需求说明

乱码问题:

l  获取请求参数中的乱码问题;

Ø  POST请求:request.setCharacterEncoding(“utf-8”);

Ø  GET请求:newString(request.getParameter(“xxx”).getBytes(“iso-8859-1”), “utf-8”);

l  响应的乱码问题:response.setContextType(“text/html;charset=utf-8”)。

思路分析

全站乱码问题的难点:处理GET请求参数的问题。

public class EncodingFilter extends HttpFilter {

    public void doFilter(HttpServletRequest request,

           HttpServletResponse response, FilterChain chain)

           throws IOException, ServletException {

       String charset = this.getInitParameter("charset");

       if(charset == null || charset.isEmpty()) {

           charset = "UTF-8";

       }

       request.setCharacterEncoding(charset);

       response.setContentType("text/html;charset=" + charset);

       chain.doFilter(request, response);

    }

}

 

如果是POST请求,当执行目标Servlet时,Servlet中调用request.getParameter()方法时,就会根据request.setCharacterEncoding()设置的编码来转码!这说明在过滤器中调用request.setCharacterEncoding()方法会影响在目标Servlet中的request.getParameter()方法的行为!

但是如果是GET请求, request只有getParameter(),而没有setParameter()方法。

下面是三种对a对象进行增强的手段:

代码描述

EncodingRequest

public class EncodingRequest extends HttpServletRequestWrapper {

    private String charset;

    public EncodingRequest(HttpServletRequest request, String charset) {

       super(request);

       this.charset = charset;

    }

    public String getParameter(String name) {

       HttpServletRequest request = (HttpServletRequest) getRequest();

      

       String method = request.getMethod();

       if(method.equalsIgnoreCase("post")) {

           try {

              request.setCharacterEncoding(charset);

           } catch (UnsupportedEncodingException e) {}

       } else if(method.equalsIgnoreCase("get")) {

           String value = request.getParameter(name);

           try {

              value = new String(name.getBytes("ISO-8859-1"), charset);

           } catch (UnsupportedEncodingException e) {

           }

           return value;

       }

       return request.getParameter(name);

    }

}

 

EncodingFilter

public class EncodingFilter extends HttpFilter {

    public void doFilter(HttpServletRequest request,

           HttpServletResponse response, FilterChain chain)

           throws IOException, ServletException {

       String charset = this.getInitParameter("charset");

       if(charset == null || charset.isEmpty()) {

           charset = "UTF-8";

       }

       response.setCharacterEncoding(charset);

       response.setContentType("text/html;charset=" + charset);

       EncodingRequest res = new EncodingRequest(request, charset);

       chain.doFilter(res, response);

    }

}

 

web.xml

  <filter>

    <filter-name>EncodingFilter</filter-name>

    <filter-class>cn.itcast.filter.EncodingFilter</filter-class>

    <init-param>

        <param-name>charset</param-name>

        <param-value>UTF-8</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>EncodingFilter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

东方财富网API接口逆向分析:手把手教你破解那个带jQuery回调的股票数据接口 本文详细解析了东方财富网股票数据API接口的逆向工程实战技巧,重点介绍了JSONP接口的核心机制、参数解析及数据处理方法。通过Python代码示例演示了如何构造请求、处理分页数据及应对反爬策略,帮助开发者高效获取股票数据。文章还提供了完整的爬虫实现案例和常见问题排查指南。 阅读详情

相关推荐

深入解析EDID中Display Descriptor Block的配置技巧与实战应用

本文深入解析EDID中Display Descriptor Block的配置技巧与实战应用。通过剖析像素时钟、有效像素、消隐区与同步脉冲等核心参数,并结合1280x720@60Hz的实战配置案例,指导开发者如何正确为定制硬件或非标准显示器编写“身份证”,避免黑屏、分辨率异常等问题,确保显示设备完美点亮。

1a2s3d4f5g的博客 878

JavaWeb过滤器(Filter)详解

JavaWeb过滤器(Filter)是一种用于拦截、处理和修改请求和响应的组件。它可以在请求到达Servlet之前对请求进行预处理,也可以在Servlet处理完请求后对响应进行后处理。过滤器是JavaWeb中的一部分,用于实现一些通用的功能,如身份验证、日志记录、字符编码转换等。过滤器的主要作用是在请求到达目标资源之前进行预处理,或者在目标资源处理完请求后进行后处理。过滤器可以对请求和响应进行修改,也可以决定是否继续传递请求或响应给下一个过滤器或目标资源。

一步一个脚印,踏实努力,向着目标前进 3156

Arduino平台软硬件原理及使用——Arduino Uno板卡的使用

Arduino Uno板卡的基本使用

洪博hopes的博客 4173

Java中的过滤器Filter

一:Filter简介 二:关于Filter (一)如何使用Filter进行过滤 (二)过滤器链 (FilterChain) (三)Filter的配置 1.通过web.xml文件配置 2.通过注解配置 (四)Filter的生命周期 (五)中文乱码过滤器 三:测试案例 1.单个过滤器 2.多个过滤器

m0_68988603的博客 1万+

踩坑2周总结:Python+YOLO26搭建工业级多路视频分析应用,从单路卡顿到16路4K稳跑30FPS

本文分享了工业级多路视频分析系统的实战经验,针对智慧物流园区的车辆违停和人员安全监测需求,提出了一套完整的解决方案。作者通过踩坑实践,总结出多路视频分析的四大核心痛点:视频流解码瓶颈、推理调度混乱、内存占用爆炸和部署兼容性差。 文章详细介绍了技术选型方案,推荐使用FFmpeg+PyAV进行硬件加速解码、YOLO26+TensorRT INT8量化推理、单进程多线程的生产者-消费者架构,以及内存池复用等技术组合。该方案在RTX 4070 Ti上实现了16路4K视频30FPS稳定运行,GPU利用率达85%以上,

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 955

IGCT 测试原理概述

IGCT(Integrated Gate-Commutated Thyristor,集成门极换流晶闸管)是一种高功率半导体器件,基于门极可关断晶闸管(GTO)的原理,但通过集成门极驱动单元和优化结构(如硬驱动技术),实现了更低的导通损耗、更快的开关速度和更高的可靠性。它适用于中高压大功率应用,如高压直流输电(HVDC)、中压变频器和模块化多电平变换器(MMC)。IGCT 的结构为四层 p-n-p-n 器件,门极电流控制导通和关断,阳极电流在关断时快速换流至门极,通常在 1 μs 内完成。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 234

【JavaWeb】之过滤器

JavaWeb基础Filter过滤器相关知识详细介绍~

小新要变强的博客 4098

手把手教你学Simulink——基于智能电网与AI融合的场景实例:强化学习在并网逆变器控制中的应用

本文介绍了如何利用Simulink和强化学习工具包实现并网逆变器的智能控制。针对传统PI控制方法的局限性,提出采用强化学习(RL)构建自适应控制系统。通过详细步骤展示了从建立主电路模型、设计强化学习环境、选择训练智能体(如PPO算法)到仿真对比测试的全过程。实验结果表明,RL控制器在动态响应、THD指标和参数鲁棒性等方面优于传统PI控制器,突显了数据驱动控制在复杂电力系统中的优势。文章还探讨了该技术在微电网协同控制、在线学习等场景的拓展应用,为智能电网控制提供了新思路。

MHD0815的博客 335

JavaWeb过滤器(Filter)详解,是时候该把过滤器彻底搞懂了(万字说明)

注意:这篇文章很长,学习完后将会解决你对于过滤器(Filter)的所有疑惑,下面将通过理论和代码的结合来进行讲解演示..... 目录 基本介绍 过滤器原理 过滤器(Filter)接口 使用过滤器(Filter) 创建过滤器(Fliter) 使用过滤器(Filter) 配置过滤器(Filter)拦截路径 注解方式 xml方式 过滤器(Filter)生命周期 理论说明 代码演示 FilterConfig和FilterChain说明 FilterConfi...

秃头披风侠的博客 7万+

2026年经典爬虫案例专栏|第17篇:学术论文爬虫实战——知网与万方数据采集

字段名说明数据类型title论文标题字符串authors作者列表列表abstract摘要字符串keywords关键词列表列表journal发表期刊字符串year发表年份整数volume卷号字符串issue期号字符串pages页码范围字符串citations引用次数整数downloads下载次数整数doiDOI编号字符串url论文链接字符串学术论文爬虫是科研工作的重要辅助工具,可以帮助研究人员高效地收集和管理论文数据。

2201_76125261的博客 1062

SillyTavern本地AI聊天平台部署与调优全指南

大型语言模型(LLM)作为当前人工智能领域的核心技术,通过其强大的自然语言理解和生成能力,正在深刻改变人机交互方式。其工作原理基于Transformer架构,通过海量数据训练,学习语言的统计规律与语义关联。这项技术的核心价值在于,它能够作为通用基础,赋能于多样化的下游应用,实现个性化的智能对话与内容创作。在工程实践中,如何高效、灵活且低成本地部署和利用这些模型,成为开发者与爱好者的关键需求。本地化部署方案,特别是结合如Ollama、KoboldCPP等推理引擎,提供了数据隐私保障与可控的硬件成本。Silly

weixin_42520448的博客 431

JavaWeb_Filter、Listener过滤器、监听器的基本应用

Filter、ListenerFilter 过滤器监听器过滤器、监听器的常见应用笔记 Filter 过滤器 Filter:过滤器,用来过滤网站的数据 处理中文乱码 登陆验证 开发步骤 导包 编写过滤器 实现Filter接口,重写对应的方法即可 package zy.filter; import javax.servlet.*; import java.io.IOException; public class CharacterEncodingFilter implements Filte

weixin_50860184的博客 273

如何构建一个 AI 驱动的数据分析系统

在现代数据分析中,将 AI 引入数据分析系统中可以极大提升效率和自动化程度。本文将从架构设计、工具选择、实现步骤等多个方面进行详细说明,帮助你构建一个 AI 驱动的数据分析系统。

晴天彩虹雨的博客 703

javaweb学习总结(四十六)——Filter(过滤器)常见应用

javaweb学习总结(四十六)——Filter(过滤器)常见应用 一、统一全站字符编码   通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import java.io.IOException; 4 import javax.servlet.Filter

fengyee_zju的专栏 907

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

javaWeb-Filter过滤器的应用

Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Filter应用案例 在本案例中,过滤器重要是为了防止用户在未登录的状态下直接访问主页。 需要用到的类: LoginServlet(实现登录功能) 在这里插入代码片pu

一名编程小白的Java学习日志 322

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【JavaWeb】【学习】【过滤器】Filter 的简单应用

实现效果 在编辑框中输入暗号:如果暗号正确,则跳转到正确页面;如果暗号错误,则跳转到错误界面。 【入口界面】 【错误界面】 【成功界面】 【项目结构】 JSP文件 本练习有两个jsp页面 页面1:index.jsp 代码: <%-- Created by IntelliJ IDEA. User: xrilang Date: 30/11/2021 Time: 15...

萌狼蓝天の技术栈 230

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

javaweb学习总结Filter(过滤器)常见应用

javaweb学习总结Filter(过滤器)常见应用 一、统一全站字符编码   通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import java.io.IOException; 4 import javax.servlet.Filter; 5 im

Ws11352369的专栏 662

Filter过滤器

过滤器(Filter)用于根据预定义的条件对输入数据进行筛选,只保留满足条件的数据项。这个过程类似于在现实生活中使用筛子筛选谷物,去除杂质,留下纯净的部分。在计算机科学中,过滤器通常接收一个数据集作为输入,并返回一个新的数据集,其中包含原始数据集中符合特定标准的元素。是 JavaWeb三大组件(Servlet、Filter、Listener)之一。

2302_77758423的博客 2381

深入分析JavaWeb 37 -- 过滤器Filter典型應用

一、统一全站字符编码  通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题package me.gacl.web.filter;import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.Filte

z742182637的博客 469

JavaWeb 三大组件之 过滤器 Filter

JavaWeb 三大组件之 过滤器 Filter 1.官方文档 链接:https://pan.baidu.com/s/1Hk8Aq8Nk9_P1ucmaP4g3qA 提取码:5kni 2.Filter 过滤器说明 1.为啥要过滤器-需求示意图 ●一图胜千言 2.过滤器介绍 1.Filter 过滤器它是 JavaWeb 的三大组件之一(Servlet 程序、Listener 监听器、Filter 过滤器) 2.Filter 过滤器是 JavaEE 的规范,是接口 3.Filter 过滤器它的作.

爱笑的boy的博客 1033

JavaWeb的Filter详解

**用户访问主界面过滤,只有登录的才能访问,没登录的都拦截**/ HttpServletRequest httpServletRequest =(HttpServletRequest) request;//获取servlet请求路径 String servletPath = httpServletRequest . getServletPath();//没登录,返回登录界面,已登录的放行 if(null == userName &&!

CAUC_lin的博客 1409

Javaweb核心之servlet规范过滤器-----Filter

Javaweb核心之servlet规范过滤器-----Filter

楠黎倾风的博客 1万+

javaweb学习总结——Filter(过滤器)常见应用

一、统一全站字符编码   通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import java.io.IOException; 4 import javax.servlet.Filter; 5 import javax.servlet.FilterChain

AlbenXie的博客 271

java中的过滤器_javaweb中Filter(过滤器)的常见应用

一、统一全站字符编码通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题package me.gacl.web.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterCon...

weixin_30096321的博客 344
上一篇: javaScript函数使用
下一篇: Log4j使用详解
午-夜
博客等级 码龄12年 95粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值