过滤器实例——字符编码Filter

  字符编码过滤器是一种快速解决Tomcat服务器中request和response乱码问题的解决方案。一般程序中要解决request、resopnse传中文参数乱码问题时一般通过在取参数前对request进行setCharacterEncoding("UTF-8")编码设置,这种方法需要在每个要使用的页面中都进行编码设置,用起来十分麻烦。字符编码过滤器通过在每个页面访问前执行Filter进行自动编码设置,只需要编写一个Filter页面并将Filter在web.xml中配置到需要的页面(本文设置到全部页面)即可。

  首先创建CharacterEncodingFilter类,继承自javax.servlet.Filter。

package filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharacterEncodingFilter implements Filter {

    private String    characterEncoding;
    private boolean enabled;
    
    @Override
    public void init(FilterConfig arg0) throws ServletException {
  //web程序启动时初始化Filter,通过FilterConfig对象从web.xml文件获取初始化参数值 characterEncoding
=arg0.getInitParameter("characterEncoding"); enabled="true".equalsIgnoreCase(arg0.getInitParameter("enabled".trim())); } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { //当初始化的参数为启用状态时,对request对象和response对象进行编码设置 if(enabled||characterEncoding!=null) { arg0.setCharacterEncoding(characterEncoding); arg1.setCharacterEncoding(characterEncoding); } arg2.doFilter(arg0, arg1); } @Override public void destroy() {
    //web程序关闭时,销毁Filter时将资源对象置为空 characterEncoding
=null; } }

  然后在web.xml中进行Filter配置即可。

<filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>characterEncoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>enabled</param-name>
            <param-value>true</param-value>
        </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>//所有页面访问前都要进行过滤
</filter-mapping>

   接下来就可以在使用request和response中直接传递和获取中文参数,不必每次使用之前都进行配置了。

 

  

转载于:https://www.cnblogs.com/2017Crown/p/7157766.html

Java过滤器(Filter)详解与实例 Java过滤器(Filter)详解与实例过滤器(Filter)是Java Web开发中非常重要的一个组件,它可以在请求到达目标资源之前或者离开目标资源之后对请求或响应进行处理。通过使用过滤器,我们可以实现一些通用的功能,比如请求参数的验证、字符编码的处理、权限验证等。本文将详细介绍Java过滤器的使用方法,并给出一个实例来演示过滤器的具体应用。 阅读详情

相关推荐

过滤器(Filter)和监听器(Listener)

一、过滤器Filter(过滤器)并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 过滤器在执行过程中任何时候都可以打断,只要不执chain.doFilter()方法就不会再

我是沈君哦! 3886

使用filter过滤器解决编码问题

编码问题在java开发中很常见,

qingfoo的专栏 2701

很好用的字符集过滤器

该方法用于struts框架中,只需简单配置即可 使用。

使用Filter过滤器解决字符编码问题

Java中的字符编码,默认为:ISO-8859-1(西方编码)。这种编码方式为单字节码,只支持英文、俄文、葡萄牙文等乱七八糟文,不支持中文。因此,我们需要对JSP页面或者Servlet中进行字符编码集的处理,国际编码(UTF-8)。在JSP页面中把最上方标签中的字符编码ISO-8859-1改为UTF-8即可。 &lt;%@ page language="java" import="java.uti...

刘鹏博的博客 2万+

告别仿真失败!用Sigrity 2022 SystemSI搞定DDR4信号质量仿真的保姆级流程

本文详细介绍了如何使用Sigrity 2022 SystemSI工具进行DDR4信号完整性仿真,提供了一套避免仿真失败、提高仿真精度和加速仿真流程的保姆级方法。从模型验证、设计数据预处理到拓扑构建和参数提取,再到高级调试技巧和仿真加速方案,帮助硬件工程师系统性地解决DDR4信号质量仿真中的常见问题。

weixin_42537499的博客 341

Comsol有限元网格剖分实战:从基础操作到高效仿真技巧

本文系统介绍了COMSOL有限元网格剖分的核心实战技巧。从基础的物理场控制与用户控制网格选择,到三角形、四边形、四面体等网格单元类型的适用场景,再到扫掠网格、边界层网格与复制网格等高效剖分方法,最后讲解了网格质量评估与几何预处理的关键步骤。旨在帮助用户掌握从自动到手动、从基础到高效的网格剖分艺术,实现仿真精度与计算效率的最佳平衡。

j7k8l的博客 375

使用过滤器解决字符编码问题

使用过滤器解决字符编码问题 第一种方式:编码写到web.xml中,过滤器读取编码,设置到request对象即可 web.xml的文件: encoding cn.itsource._02_encoding.EncodingFilter encoding UTF-8 encoding /* 编码过滤器EncodingFilter p

chenmixuexi_的博客 1104

PV-RCNN实战:如何在KITTI数据集上实现3D目标检测(附完整代码解析)

本文提供了在KITTI数据集上实战PV-RCNN 3D目标检测的完整指南,涵盖环境配置、数据预处理、模型训练与评估全流程。通过详细的代码解析和调参技巧,帮助读者掌握这一融合点与体素优势的经典3D目标检测模型,并实现从理论到实践的跨越。

weixin_29098391的博客 403

Filter统一编码实现

Filter统一编码实现 Web.xml配置如下: <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/

zhupengqq的博客 998

快衰落、慢衰落,平坦衰落、频率选择性衰落

目录一、大尺度衰落和小尺度衰落二、平坦衰落和频率选择性衰落1.反射墙、固定天线模型2.相干带宽和时延扩展三、快衰落和慢衰落1.反射墙、运动天线模型2.相干时间和多普勒扩展四、联系总结 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、大尺度衰落和小尺度衰落 移动无线信道的主要特征是信道强度关于时间和频率的变化,大致分两种: 大尺度衰落: .

weixin_45662974的博客 3万+

Chipyard------介绍与环境搭建

Chipyard是一个开源的、可扩展的、集成化的芯片设计平台,旨在帮助芯片设计人员快速、高效地开发自己的定制芯片。由伯克利大学架构研究小组开发,它基于Chisel语言和Scala编程语言,提供了一整套硬件设计工具和流程,包括RTL设计、验证、物理布局、仿真等,以及支持多种芯片体系结构的库和模块。

qq_38798111的博客 9478

java过滤器Filter

一、简介 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断如是否有权限访问页面等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应 (Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、...

yjclsx的博客 42万+

centos7下100T存储扩容(LVM)至150T

查看新增磁盘情况lsblk,fdisk -l [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 4.2G 0 rom vda 252:0 0 80G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2

tiyager的博客 1024

JSP Filter(过滤器)详解

JSP Filter(过滤器)详解 JavaWeb三大组件:Servlet程序、Filter过滤器、listener监听器 Filter过滤器:JavaEE的规范 接口 作用:拦截请求 过滤响应 使用步骤: 1.创建一个类,并实现Filter接口 //@WebFilter("/MyFilter") public class MyFilter implements Filter { public MyFilter() { } public void destroy() { } public vo

小新的笔记博客 5055

ue 蓝图 c++ websocket 事件回调

ue 蓝图 c++ websocket 事件回调

jacke121的专栏 166

电压跟随器在ADC采样电路中的作用分析

电压跟随器在ADC采集系统中扮演关键角色,它能解决分压电路因ADC输入阻抗导致的电压误差问题。通过运放构成的电压跟随器可隔离信号源与负载,保证采样精度,尤其适用于高阻抗传感器或高速采样场景。工程应用中需注意运放带宽、轨对轨输出能力及抗干扰设计。合理使用电压跟随器能显著提升信号完整性,在复杂电子系统中成为不可或缺的"信号桥梁。

硬核科技 654

Java Web三大组件之Filter过滤器

本文只是先做下简单的介绍,文章会持续更新....... Java Web三大组件(Servlet、Filter、Listener) 1、Filter过滤器概念 生活中的过滤器:净水器,空气净化器,大山里的土匪等 JavaWeb中的过滤器:当浏览器访问服务器资源时,过滤器就会拦截浏览器发过来的请求,实现一些特别的功能 作用:一般用于完成通用的操作,如登录验证,身份验证,...

No8g攻城狮的博客 650

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JavaWeb——Filter过滤器

JavaWeb——Filter过滤器 定义:Filter是拦截Request请求的对象,在用户的请求访问资源前处理ServletRequest以及ServletResponse,它可用于日志记录,加解密,Session检查,图像文件保护。通过Filter可以拦截处理某个资源或者某些资源  Filter的概念虽然说了这么一大堆,但是简单的理解,就是在浏览器(客户端)与服务端(Servlet)之间...

xiaoaxiao 320

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java过滤器Filter的使用详解

过滤器 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。 如下图,浏览器发出的请求先递交给第一个filter进行过滤,符合规则则放行,递交给filter链中的下一个过滤器进行过滤。过滤器在链中的顺序与它在web.xml中配置的顺序有关,配置在前的则位于链的...

nnngu 1424

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Filter过滤器详解

Filter  过滤器       它是Servlet技术中非常重要的技术之一,web开发人员可以通过使用Filter技术,可管理web服务器上的所有wen资源       Filter尽管与Servlet有很多相似之处,但也有不同 区别在于FIlter可以产生一个Http相应。       Filter能够在一个请求到达Servlet之前预处理用户请求 也可以离开Servlet

qq_14844653的博客 417

JavaWeb开发Filter学习

JavaWeb开发Filter学习

孤夜的博客 1033

利用filter过滤器实现整个服务器对中文的支持

过滤器filter和servlet服务器小程序一样,也是运行在服务器端的java类filter负责对所有的请求在到达服务器处理程序之前,先执行一些操作,达到对数据的预处理的目的。 比如我们可以编写一个过滤器:@WebFilter(filterName = "FilterOne") public class FilterOne implements Filter { public void

ChenYitian 582

Javaweb系列12——Filter

🔥本篇概览:详细讲解了Filter过滤器的的方方面面。🌈⭕🔥

做一个善良的人,做好自己的事,如果愿意,再发一份光。 911

Springboot中过滤器Filter的配置与使用(UTF-8字符编码(解决乱码),请求URL过滤(HttpServletRequestWrapper))

之前在web.xml文件中,总会使用下面的配置进行字符编码: <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding&

m0_52613676的博客 1408

java filter过滤器_JavaWeb之 Filter(过滤器)

FIlter作用过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的。当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet。其实可以这样理解,当用户请求某个Servlet时,Tomcat会去执行注...

weixin_31313629的博客 285
上一篇: jsp+mysql使用原生jdbc步骤
下一篇: pcap文件格式分析
VirusCode2016
博客等级 码龄10年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值