解决spring3 mvc中乱码的问题。

叭叭一下Servlet的虚拟路径的映射 :smiling_face: 部分一:虚拟路径的映射 什么是Servlet的虚拟路径 在web.xml文件中,一个``元素中用于映射一个Servlet的对外访问路径,此路径也称虚拟路径 为什么Servlet要配置虚拟路径呢 说白话,就是给你建的Servlet起一个别名,把路径改成浏览器访问的方式,只有把Servlet映射成虚拟路径,客户端才能对其进行访问 新建一个动态web项目后,然后新建好servlet之后,打开web.xml 打开你的web.xml,我们瞅瞅里面的东东 如果你打开是这样式儿的,请不要灰心,看图片左下角两个框框,切换一下就行了,我的是汉化过的eclipse 中文的切换到 源,英文的切换到 r 立即下载

今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱码问题一般都是写一个filter,在filter中实现编码的转换,配置方法是是在web.xml中加入以下代码:

[html]  view plain copy
  1. <filter>    
  2.     <filter-name>Character Encoding</filter-name>    
  3.     <filter-class>com.filter.CharacterEncodingFilter</filter-class>    
  4.     <init-param>    
  5.         <param-name>encoding</param-name>    
  6.         <param-value>UTF-8</param-value>    
  7.     </init-param>    
  8. </filter>    
  9. <filter-mapping>    
  10.     <filter-name>Character Encoding</filter-name>    
  11.     <url-pattern>/*</url-pattern>    
  12. </filter-mapping>  

其中:com.filter.CharacterEncodingFilter是自己实现的过滤器,具体写法可以参考tomcat6中webapps\examples\WEB-INF\classes\filters下SetCharacterEncodingFilter这个类。

 

觉得这样做有点麻烦,百度了一下,发spring中自带了一个设置编码的过滤器org.springframework.web.filter.CharacterEncodingFilter,所以在web.xml中可以改成这样:

[html]  view plain copy
  1. <filter>    
  2.     <filter-name>Character Encoding</filter-name>    
  3.     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    
  4.     <init-param>    
  5.         <param-name>encoding</param-name>    
  6.         <param-value>UTF-8</param-value>    
  7.     </init-param>    
  8. </filter>    
  9. <filter-mapping>    
  10.     <filter-name>Character Encoding</filter-name>    
  11.     <url-pattern>/*</url-pattern>    
  12. </filter-mapping>  

 

这样就不用自己写过滤器了。

但是还是觉得有点麻烦,因为使用spring mvc的时候,已经在web.xml中设置了servlet:

[html]  view plain copy
  1. <servlet>  
  2.  <servlet-name>spring</servlet-name>  
  3.  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.  <load-on-startup>1</load-on-startup>  
  5. </servlet>  
  6.   
  7. <servlet-mapping>  
  8.  <servlet-name>spring</servlet-name>  
  9.  <url-pattern>*.do</url-pattern>  
  10. </servlet-mapping>  

上面已经对请求做了一次过滤,如果再加一个过滤器感觉有点多余,直接改一下DispatcherServlet这个类,使它具有修改编码的功能不是更好?于是就写了一个新的类,继承自DispatcherServlet,代码如下:

[java]  view plain copy
  1. package com.mocha.servlet;  
  2.   
  3. import javax.servlet.ServletConfig;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.HttpServletRequest;  
  6. import javax.servlet.http.HttpServletResponse;  
  7. import org.springframework.web.servlet.DispatcherServlet;  
  8.   
  9. public class EncodingDispatcherServlet extends DispatcherServlet {  
  10.  private String encoding;  
  11.   
  12.  public void init(ServletConfig config) throws ServletException {  
  13.   encoding = config.getInitParameter("encoding");  
  14.   super.init(config);  
  15.  }  
  16.   
  17.  protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {  
  18.   request.setCharacterEncoding(encoding);  
  19.   super.doService(request, response);  
  20.  }  
  21. }  

然后将web.xml中的配置改为:

[html]  view plain copy
  1. <servlet>  
  2.  <servlet-name>spring</servlet-name>  
  3.  <servlet-class>com.mocha.servlet.EncodingDispatcherServlet</servlet-class>  
  4.  <load-on-startup>1</load-on-startup>  
  5.  <init-param>  
  6.   <param-name>encoding</param-name>  
  7.   <param-value>UTF-8</param-value>  
  8.  </init-param>  
  9. </servlet>  
  10.   
  11. <servlet-mapping>  
  12.  <servlet-name>spring</servlet-name>  
  13.  <url-pattern>*.do</url-pattern>  
  14. </servlet-mapping>  

 OK,乱码消失,现在总结一下乱码的问题,get方法乱码解决方法一般是将tomcat中conf目录下server.xml文件中加入

[html]  view plain copy
  1. <Connector port="8080" maxHttpHeaderSize="8192"    
  2.                maxThreads="150" minSpareThreads="25" maxSpareThreads="75"    
  3.                enableLookups="false" redirectPort="8443" acceptCount="100"    
  4.                connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />  

而post方法解决乱码是设置一个专门处理编码转换的filter或者servlet。


看下面的一段代码描述

/*
if(request.getMethod().equals("POST")){
//request.setCharacterEncoding("UTF-8");  //只对post提交有效,对get无效
request.setCharacterEncoding("UTF-8"); 
String username = request.getParameter("username");
System.out.println(username);
}else{
//如为get提交,username中的乱码想正常,只能采用如下方式手工处理
String username = request.getParameter("username");
username = new String(username.getBytes("iso8859-1"),"UTF-8");
System.out.println(username);
}
*/

手把手教你使用Segformer训练自己的数据 SegFormer 基于Swin transformer 修改 阅读详情

相关推荐

Anki小白必看:手把手教你打造高颜值个性化笔记模板(附Leaflyer模板下载)

本文为Anki新手提供详细的个性化笔记模板设计指南,从基础配置到高级定制技巧,帮助用户打造高效记忆系统。特别推荐Leaflyer模板下载,通过视觉优化和功能强化,显著提升学习体验和记忆效率。

weixin_28717969的博客 433

Spring的DispatcherServlet

是Spring MVC框架的前端控制器(Front Controller),负责将请求分发到相应的处理器(Controller)。它是Spring MVC的核心组件,处理所有进入的HTTP请求,并协调各个组件之间的工作。以下是关于。

yuehua00的专栏 602

Postman调试海康ISAPI接口全记录:从鉴权失败到成功修改设备名的踩坑指南

本文详细记录了使用Postman调试海康ISAPI接口的全过程,从鉴权失败到成功修改设备名的实战经验。涵盖Digest认证机制、XML请求体构造、常见错误排查及代码实现过渡,帮助开发者高效解决海康设备集成中的各种问题。

weixin_42620913的博客 660

SpringMVC核心分发器DispatcherServlet分析[附带源码分析]

目录 前言 DispatcherServlet初始化过程 DispatcherServlet处理请求过程 总结 参考资料 前言 SpringMVC是目前主流的Web MVC框架之一。 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html 本文将...

weixin_33730836的博客 318

告别BAPI!深入SAP S/4HANA BP框架:cl_md_bp_maintain维护客户主数据的正确姿势与性能优化

本文深入解析SAP S/4HANA中cl_md_bp_maintain框架的高效实践与架构设计,对比传统BAPI方式,展示其在业务伙伴(BP)主数据维护中的性能优势与现代化特性。通过详细代码示例和性能测试数据,揭示如何利用该框架实现批量处理、集中校验及智能错误恢复,助力企业从ECC向S/4HANA平滑迁移。

weixin_30596735的博客 357

别再只调颜色阈值了!优化K210色块追踪性能的5个关键参数与实战技巧

本文深入探讨了K210色块追踪性能优化的五大核心策略,包括图像预处理参数精细调控、find_blobs参数进阶配置、运动控制算法升级、硬件时序优化以及可视化调试系统构建。通过实战技巧和参数调整方法,帮助开发者提升K210在色块追踪项目中的识别稳定性和响应速度,适用于云台追踪等应用场景。

weixin_42531588的博客 225

get 方式请求乱码以及用Jquery ajax 乱码问题的解决;

先说用jquery ajax 乱码问题 的解决:  jsp:     var planname=        encodeURIComponent($("#planname").val()); $.ajax({         type: 'post',         url: '/exam2/exportPlanExcelAction.actio

u010509143的专栏 1526

DFT设计绪论

DFT设计的主要目的是为了将defect-free的芯片交给客户。 产品质量,通常使用Parts Per million(PPM)来衡量。 但是随着IC从SSI到VLSI的发展,在test上花销的时间越来越多,test的quality却很难提高,这使得DFT的engineer不断的发展着DFT的技术。 DFT engineer面对的第一个问题是设计内部的状态的可测试性问题。在...

ahr7882的博客 1195

java_springMVC_获取post请求的参数

1. 获取post请求的参数其实和get请求的获取参数方式一样,在此单列出来主要是为了说明几种特殊情况,如方式一中有数组、方式二中使用类、以及使用ajax。为了数据类型更全一点,我的参数中有字串型、数字型,及下拉框、复选框、单选框。先写一个addUser.jsp页面如下:&lt;form action="" method="post"&gt;&lt;p&gt;&lt;input type="tes...

子龙修仙的博客 10万+

基于STM32的智能鱼缸设计

为了缓解学习、生活、工作带来的压力,提升生活品质,许多人喜欢在家中、办公室等场所养鱼。为节省鱼友时间、劳力、增加养鱼乐趣;为此,本文基于STM32单片机设计了一款智能鱼缸。该鱼缸可以实现水温检测、水质检测、自动或手动换水、氛围灯灯光变换和自动或手动喂食等功能为一体的控制系统,可通过控制键进行一键控制。...

1万+

凝聚态物理新引擎:AI 驱动材料预测与相变识别大突破

摘要:本文深入探讨 AI 在凝聚态物理中的创新应用。在材料性质预测方面,AI 借助数据收集、特征提取和模型训练,能依据材料微观信息准确预估其宏观性质,以石墨烯为例验证了高效性。对于拓扑相变识别,AI 通过分析量子力学数据,利用机器学习算法判别相变节点,助力拓扑绝缘体研究。尽管面临数据质量、模型可解释性等挑战,但未来多模态数据融合、可解释 AI 等发展方向,将推动 AI 与凝聚态物理深度融合,助力探索物质奥秘与新材料研发。

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

Spring3.0 MVC @ResponseBody乱码问题解决

最近在项目重构中,把原来项目中的Struts2换成了spring3.0的MVC,个人感觉Spring3 mvc比struts2开发方便多了。尤其它的RESTFUL URL。更多关于Spring3 mvc的资料网上也是一大堆,这里就不一一介绍了。写此文的目的是记录一下自己解决Spring3.0 MVC @ResponseBody中文乱码问题。Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。具体实现AnnotationMethodHandl

nmgrlq的专栏 6229

三连杆平面机器人的动力学

0.前言 在这个例子中推导并实现三连杆平面机器人的运动方程。特别的,这里使用拉格朗日法推导运动方程。系统模型如下: 其中在枢轴点处Tm为驱动力矩【一般由伺服电机提供】; b*theta_d:为粘性阻尼扭矩 1、系统方程符号推导前--简介 首先明确欧拉-拉格朗日运动方程: 同样也可以根据作用在多体系统上的非保守力和非保守扭矩来定义广义力Qk。 作用在系统上的广义力的公式为: 其中: Qk:是与广义坐标关联的广义力 Nf_nc :是作用的非保守力的数量 Nt_nc:是作用的非保守扭矩的.

weixin_39090239的博客 4930

springmvc Spring3 MVC @ResponseBody返回,jquery ajax调用中文乱码问题解决

转自:http://blog.youkuaiyun.com/xiaoxin888888/article/details/8279745 转自:http://thoughtfly.iteye.com/blog/1585048 Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。具体实现AnnotationMethodHand

super2007的专栏 3386

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

Spring3 MVC使用@ResponseBody的乱码问题及解决办法

近日用Spring3的MVC写东西,深感其之于Webwork/Struts2的便利,但是在通过@ResponseBody这个annotation输出一个json字符串的时候,发现页面上获得的json字符串中文字符出现了乱码的现象。通过firefox观察返回的字符串,中文部分全部变成了?????的形式,初步判定是返回时,spring处理@ResponseBody使用了错误的编码。 因为我在web.

沉默非金 1845

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

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

spring mvc 3.0 中解决post表单提交出现的中文乱码问题

在spring mvc 3.0 框架中,通过JSP页面、HTML页面以POST方式提交表单时,表单的参数传递到对应的servlet后会出现中文显示乱码的问题。解决办法可采用spring自带的过滤技术,对所有页面间参数的传递设置统一的字符编码。     在web.xml中添加几行代码即可:     characterEncodingFilter   org.springframework.w

lanchengxiaoxiao的专栏 690

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring MVC3返回JSON数据中文乱码问题解决

Spring MVC3返回JSON数据中文乱码问题解决 查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题。 Spring版本:3.2.2.RELEASE Jackson JSON版本:2.1.3 解决思路:Controller的方法中直接通过response向网络流写入String类型的json数据。 使用 Jackson 的 ObjectMappe

海涛的博客 1万+

解决spring3 mvc中乱码的问题

原文 http://blog.youkuaiyun.com/zhengzhb/article/details/6967975 今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱码问题一般都是写一个filter,在filter中实现编码的转换,配置方法是是在web.xml中加入以下代码: [html] view p

dongnianzi的专栏 283
上一篇: 一个Socket连接管理器(心跳机制)
下一篇: Tomcat的Classloader
java85140031
博客等级 码龄18年 34粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值