tomcat下的jsp和servlet的字符编码问题

filter对request请求拦截,对请求参数进行修改 对request请求进行拦截,对请求参数修改。常用于前台提交表单参数关键字的过滤。此工具可以对参数拦截并转义后提交到对应的处理类。 除了添加两个JsFilter.java和GetHttpServletRequestWrapper.java之外,需要在web.xml添加对应的配置。 sqlFilter weixin.idea.waiting.cq.controller.JsFilter sqlFilter /* 立即下载

tomcat下的jsp和servlet的字符编码问题  
 
 使用filter来改变request的编码

在前面的文章里面,我们讨论了在tomcat下的jsp和servlet的字符编码问题!


知道当没有指定request的编码的时候,从客户端得到的数据是iso-8859-1编码的(request.getParameter()得到传递的参数值);


但是我们怎么来改变request的编码呢?


方法有很多种!


 比如:在getRequestDispatcher("/jsp/jsptoserv/hello.jsp").forward(request, response);之前修改


request的编码,那么在jsp/jsptoserv/hello.jsp中得到的参数值就是制定的编码的字符。


本文我们使用Filter来修改request的编码!


 


1)首先编写filter类:


package myFilter;

 

import java.io.IOException;
import javax.servlet.*;

 

public class ChangeCharsetFilter implements Filter {

 

    protected String encoding = null;/////要制定的编码,在web.xml中配置

    protected FilterConfig filterConfig = null;


        public void destroy() {


        this.encoding = null;
        this.filterConfig = null;


    }


    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
 throws IOException, ServletException {


            if (request.getCharacterEncoding() == null){
            String encoding = getEncoding();////得到指定的编码名字
            if (encoding != null)
                request.setCharacterEncoding(encoding);////设置request的编码
        }


         chain.doFilter(request, response);///有机会执行下一个filter


    }


    public void init(FilterConfig filterConfig) throws ServletException {


          this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");///得到在web.xml中配置的编码
      }

 

    protected String getEncoding() {


        return (this.encoding);///得到指定的编码


    }

 

}

 

2。编辑web.xml文件


<?xml version="1.0" encoding="ISO-8859-1"?>


<!DOCTYPE web-app
 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">


<web-app>


<filter>
        <filter-name>SetCharacterEncoding</filter-name>
        <filter-class>myFilter.ChangeCharsetFilter </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GB2312</param-value>//////指定编码为GB2312
        </init-param>
     </filter>
    <filter-mapping>
        <filter-name>SetCharacterEncoding</filter-name>
        <url-pattern>/*</url-pattern>////////对于所有的request改变其编码
    </filter-mapping>


</web-app>
///


3。


写一个a.jsp


<%@ page contentType="text/html; charset=GB2312" %>
<html>
<head></head>
<body>
<%
String name=request.getParameter("name");///本来这里得到字符是iso-8859-1编码的,不能直接


在Console中输出的,但是现在改变了request的编码方式,此时的name的编码是GB2312,所以能正确在Console中显示的。

System.out.println(name);


%>
<form action="a.jsp" method="post">
<input type="text" name="name">
<input type="submit">
</form>
<%=name%>
</body>
</html>


完!


关于中文处理的问题就写这些了!

5个Servlet过滤器实例源码(JSP) Servlet过滤器大全,各种详细使用的代码! 一、字符编码的过滤器 二、使浏览器不缓存页面的过滤器 三、检测用户是否登陆的过滤器 四、资源保护过滤器 五 利用Filter限制用户浏览权限 立即下载

相关推荐

Servlet编码过滤器的实现

NULL 博文链接:https://slccie.iteye.com/blog/897429

使用filter来改变request的编码

转载请注明:http://www.youkuaiyun.com/develop/article/17/17204.shtm作者:ggyy1977@hotmail.com                                      使用filter来改变request的编码在前面的文章里面,我们讨论了在tomcat下的jsp和servlet的字符编码问题!知道当没有指定reques

ggyy的专栏 1583

JSP 开发中过滤器filter设置编码格式的实现方法

主要介绍了JSP 开发中过滤器filter设置编码格式的实现方法的相关资料,我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式,这里提供一次性修改所有的请求编码问题,需要的朋友可以参考下

sevlet使用过滤器(Filter)统一设置字符编码

sevlet使用过滤器(Filter)统一设置字符编码

m0_74637610的博客 991

光纤接口类型与应用场景全解析

本文全面解析了光纤接口的类型与应用场景,详细介绍了SC、LC、FC和ST等主流光纤接口的特点及适用环境。从数据中心的高密度布线到工业环境的极端条件,提供了专业的接口选型指南和实战经验,帮助读者根据具体需求选择最合适的光纤接口方案。

weixin_29289821的博客 411

深交所 vs 上交所:Level-2实时数据推送规则详解与策略适配指南

本文深度解析沪深Level-2实时数据推送规则的关键差异,包括逐笔成交、逐笔委托和10档行情接口的处理逻辑。针对高频交易策略,详细对比上交所与深交所在数据推送机制、时间戳处理及委托队列解析等方面的差异,并提供具体的策略适配方案和性能优化建议,帮助量化投资者提升跨市场交易稳定性。

weixin_27310417的博客 1165

java web中使用过滤器对request及response中参数进行统一字符编码

在java web中字符编码的处理是一件很繁琐的事情,如果不对编码进行处理,总会出现各种奇怪的字符,甚至如果代码写的不好,还可能引发莫名其妙的错误。所以,想偷懒的人们总会来研究一些能对字符编码进行统一处理的办法,此时,过滤器来担此大任! 本文参考博客: 用过滤器filter设置编码格式 Servlet编码过滤器(Post和get方式都支持) 由于目前国际通用编码为utf-8,因此本文默认使...

吟游诗人——吟唱生命的不朽 2112

大模型越狱指令数据集全解析:从AdvBench到HarmBench

本文全面解析了AdvBench、HarmBench等主流大模型越狱指令数据集。AdvBench作为基础测试集,用于快速评估模型安全基线;HarmBench则以其全面的文本、多模态及对抗性攻击评估,成为当前权威的深度安全审计工具。文章还介绍了MaliciousInstruct、JailbreakBench等特色数据集,并提供了根据实际场景选择与使用这些数据集的具体实战指南。

weixin_29327525的博客 619

过滤器实现对request的编码

第一步:声明包装类: //声明包装类 class MyRequest extends HttpServletRequestWrapper{     public MyRequest(HttpServletRequest request) {        super(request);     }     //增强getParamter     @Override     pub

JeremyYong的博客 536

模拟滤波器的基础知识和设计

使用Python实现多种模拟滤波器

faltas的博客 3530

信号检测算法的MATLAB仿真:能量检测、循环平稳检测和匹配滤波检测

根据具体的应用场景和要求,选择合适的信号检测算法可以提高系统的性能和可靠性。在无线电通信中,信号检测是一项重要的任务,它用于检测和识别接收到的信号。在本文中,我们将介绍三种常用的信号检测算法:能量检测、循环平稳检测和匹配滤波检测,并提供相应的MATLAB源代码进行仿真实现。在上述代码中,我们首先设置了能量检测的阈值,然后生成了一个包含1000个服从正态分布的随机信号样本的信号。在上述代码中,我们首先设置了信号模板,然后生成了一个包含信号模板的信号样本。最后,通过比较相关性的最大值与阈值来判断信号是否存在。

PixelLancer的博客 1363

利用过滤器实现request的编码转换

关于Filter接口:创建Filter必须实现javax.servlet.Filter接口,该接口种定义了三个方法void init(FilterConfig config):用于完成Filter的初始化。void destroy();用于Filter销毁前资源的回收。void doFilter(ServletRequest request,ServletResponse response,Fil

jun_yuner的专栏 1493

基于FPGA的多通道音频信号采样系统设计

FPGA是随着数字集成电路的发展而逐步演变而来的。从早期的电子管、晶体管、小规模集成电路,到超大规模集成电路(VLSIC),数字集成电路的集成度和性能不断提升。FPGA的出现为系统设计师提供了灵活的设计平台,使其能够在不依赖半导体厂商的情况下快速设计专用集成电路(ASIC)。FPGA具有设计周期短、成本低、开发工具先进等优点,广泛应用于原型设计和产品生产中。VHDL是一种用于描述数字系统的硬件描述语言,其语言形式类似于计算机高级语言,但包含了许多硬件特征语句。

qq_62634009的博客 709

Servlet+jsp+tomcat--用filter解决字符编码问题_用filter解决session失效问题

文本讲述在servlet+jsp+tomcat基础开发中 1.用filter解决字符编码问题(不需要再在每个Servlet的post方式中写上这样一行代码了request.setCharacterEncoding("utf-8");) 2.用filter解决session失效问题(解决当登陆之后,清除cookie,session依赖于cookie,再刷新页面出现500的问题,不再出现500,而...

qq_42980244的博客 347

TI单芯片毫米波雷达1642demo代码走读(一)

今天我们来实际看下代码。 首先使用CCS软件导入demo工程,工程有两个,一个是ARM的工程,工程名是mmw_mss_16xx;另一个是DSP的工程,工程名为mmw_dss_16xx。我们将这两个工程的主函数打开,分别位于mss_main.c和dss_main.c文件中。 先看mss的主函数,代码如下。我为每行代码都加了中文注释和自己的理解。 int main (void) { Task_Params taskPara...

1万+

深度揭秘!用 DeepSeek 打造超智能电商客服系统全流程

摘要:本文围绕使用 DeepSeek 开发电商智能客服展开详细教程。先介绍前期准备,包括了解 DeepSeek、获取 API 权限与搭建开发环境。接着阐述数据收集预处理,结合电商业务逻辑实现商品与订单信息查询。还提及优化性能的方法,如模型微调、多轮对话管理和错误处理。然后说明了基于 Web 和云平台的部署方案。最后强调持续监控和改进的重要性,通过设置监控指标、收集分析用户反馈来优化系统,助力开发者打造高效电商智能客服。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 7815

java(16)--servlet+jsp+四大域+javabean+开发模式

一、javaweb1. HTTP协议Http协议制定客户端与服务器端的通讯格式 Http协议一定一问一答 问: 请求消息 请求行:请求方式get和post的区别 消息头:referer 答: 响应消息 响应消息: 压缩方式 Accept-Encoding 通知对方下载: content-disposition:attachment;filename=文件名2. tomcat服务器1)

上善若水,厚德载物 815

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java 中文问题的解决 mysql, oracle, servlet, jsp

在tomcat5中发现了以前处理tomcat4的方法不能适用于处理直接通过url提交的请求,上网找资料终于发现了最完美的解决办法,不用每个地方都转换了,而且无论get,和post都正常。写了个文档,贴出来希望跟我有同样问题的人不再像我一样痛苦一次:-)上传文件有问题,只好直接贴了,难看点:-)-------------------Tomcat 5中文问题author:kiss__sky@163.c

seaso的专栏 886

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Servlet-jsp

Servlet 与 JSP nginx 可以部署静态内容 tomcat 可以部署动态内容 常见操作 startup.bat shutdown.bat ctrl+C 找后台 java 进程 server.xml 可以端口,配置字符集,虚拟主机 … maven pom.xml GAV 坐标 &lt;dependency&gt; &lt;groupId&gt;组织 &lt;...

zpj890512的博客 282

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Tomcat 下 JSP(enctype="multipart/form-data") post 提交时中文乱码解决方案

This problem had been bugging me for 3 days!Background:Use JSP and Servlet to implement file upload。The uploaded file is stored in file system, the related info like description and Mime type, siz

hantb的专栏 2977

Servlet 与 JSP(一)

富贵必从勤苦得,男儿须读五车书 Servlet 与 JSP nginx 可以部署静态内容 tomcat 可以部署动态内容 常见操作 startup.bat shutdown.bat ctrl+C 找后台 java 进程 server.xml 可以端口,配置字符集,虚拟主机 … maven pom.xml GAV 坐标 &lt;dependency&gt; &lt;gro...

We_chuan的博客 400

Jsp与Servlet 编码问题

1.编码格式: ServletRequest setCharacterEncoding(String env) throws java.io.UnsupportedEncodingException 重写此请求正文中使用的字符编码的名称。必须在使用 getReader() 读取请求参数或读取输入之前调用此方法。否则,此方法没有任何效果。 env 包含字符编码名称的 String。 Throws ...

wangxulei123的博客 286
上一篇: 深入了解MIDP-基础篇
下一篇: Java学习从入门到精通
天地客人
博客等级 码龄23年 62粉丝 168原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值