学校计算机硬件学校怎么样 求解答

spring mvc 中文乱码 post与get的方法解决
spring m表单提交中文参数乱码问题
今天测试spring mvc& ,中文乱码,在web.xml中加上
&filter-name&encodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&filter-name&encodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
过滤所有请求,但还是有问题,最后发现是表单的问题,在表单中method默认是get,而以上过滤器只对post有效果,如果是get,需要修改 Tomcat根式目录的 conf/server.xml文件中,找&Connector port=&8080& /&,在里面加&Connector port=&8080& uRIEncoding=&utf-8& /&彻底解决Spring MVC中文乱码问题的方案
作者:passport_daizi
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了彻底解决Spring MVC中文乱码问题的方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
乱码是让人很头疼的一件事,本文介绍了彻底解决Spring MVC中文乱码问题的方案,具体如下:
&1:表单提交controller获得中文参数后乱码解决方案
注意:& jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果
&%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&
&form action="${ctx}/user/addUser" name="userForm" method="post"&
修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)
&filter-name&characterEncodingFilter&/filter-name&
&filter-class&orgspringframeworkwebfilterCharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&characterEncodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
注意:数据库编码是否支持中文
数据库表和表字段是否正确
在配置连接数据库的参数设置修改:
&property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"&&/property&
第一种情况:
jsp页面中文输入,到controller乱码,这时候需要设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8,代码如下:
Web.xml配置文件:
&filter-name&CharacterEncodingFilter&/filter-name&
&filter-class&orgspringframeworkwebfilterCharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&utf-8&/param-value&
&/init-param&
&filter-mapping&
&filter-name&CharacterEncodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
这里需要注意的是,最好把这段代码放在webxml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。
第二种情况:
数据库中文数据,jsp页面显示乱码(不是严格意义上的乱码,而是以问号的形式呈现)
由于我们前后台的数据交互使用的是json数据,出现这种情况的原因我也不太清楚,之前也没遇到过,只能怪自己做过的项目太少,解决起来也不困难,只需要在转json的时候设置一下编码格式就可以了,代码如下:
responsesetContentType("application/charset=UTF-8");//防止数据传递乱码
写上这句话就不会再出现乱码了。
&第三种情况:
页面中文,传递到controller也是正确的,但是保存到数据库之后就是乱码(也不是严格意义的乱码,跟上面一样全是问号)
这个问题困扰了我一段时间,开始觉得数据库的编码格式不正确,重新创建了编码格式为utf-8的数据库也还是不可以,最后觉得是jboss的问题,我们的服务器用的是jboss,上网查了资料在连接数据源的时候加上编码格式就可以了,代码如下:
&datasource jta="true" jndi-name="java:jboss/datasources/JcMysqlDS" pool-name="JcMysqlDS" enabled="true" use-java-context="true"&
&connection-url&jdbc:mysql://46/ITOO_BASIC_BASIC?useUnicode=true&characterEncoding=UTF-8&/connection-url&
&driver&mysql&/driver&
&prefill&false&/prefill&
&use-strict-min&false&/use-strict-min&
&flush-strategy&FailingConnectionOnly&/flush-strategy&
&security&
&user-name&root&/user-name&
&pass&a href="http://wwwitnet/edu/ebg/" target="_blank" class="keylink"&word&/a&&123456&/pass&a href="http://wwwitnet/edu/ebg/" target="_blank" class="keylink"&word&/a&&
&/security&
&/datasource&
1.页面乱码
页面相对是最为容易解决的,往往是在相应的jsp页面或者html页面设置相关的字符集即可。如
2.传值乱码
在传值过程中,也是乱码出现的频繁地。先不说到底是什么场景了,通常常用的方案有如下几个配置指定的filter
&!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--&
&filter-name&springUtf8Encoding&/filter-name&
&filter-class&orgspringframeworkwebfilterCharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
设置request字符集
&往往从前台传入到对应的controller或者是action之后出现乱码,讲讲我一般的思路是先打印request本身默认的字符集
Systemoutprintln(requestgetCharacterEncoding());
接着按照情况,如果打印的不是所需要的字符集则设置相应字符集即可
requestsetCharacterEncoding("UTF-8");
当然某种情况可能还是无法解决这时候用以下这个即可
String str=newString((requestgetParameter("bigQuestionTypeName"))getBytes("iso-8859-1"),"utf-8")
3.存入数据库乱码
这个相对就比较复杂,这里lz用的MySQL,且以mysql来介绍如何来解决这个乱码问题
大家都知道,无论是底层使用的是纯粹的jdbc还是hibernate还是jpa都好,其实本质上都是jdbc,对应的框架只不过在相关的基础上进行特定的封装。所以无论是什么样的技术,都会用到连接到数据库的url。所以url首先是需要检查的
标准情况会在相应的后面加上相应的字符集设置,如下
jdbcUrl=jdbc:mysql:///itcastoa?useUnicode=true&characterEncoding=UTF-8
如上,useUnicode就不用说了,连接数据库中设置的字符集,&amp这是什么的?这就有问题了,在xml中&amp是&的转义字符。如果你是用xml来配置对应的数据库连接配置的话就什么问题了。但是如果用的是**properties就有问题了,则必须将amp除去即可。这个确实是lz经历了头破血流的经验啊。
这里的问题也是相对比较难处理的,登录数据库
查看数据库编码格式
&img width="576" height="378" style="width: 630 height: 52 display:" alt="计算机生成了可选文字:夕sql&useitcastoaatabasechanged夕sql二status夕sqlUer14。14Distribs。6。19,forUin64onnectionid:u犷犷entdatabase:LtrrentLtser:SL:singdelimiteP:e护ue护ue护sion:rotocolve犷sion:onnection:e犷uercha犷acterset:bcharacterset:lientcha护acte护set:onn。cha护acte护set:CPport:ptine:1itcastoarootelocal卜ostH5。6。19H夕SQLCo。。unit夕Seruer1日localhostviaTCP/IPlatinlUtfsgbkgbk33日61hour51oin4?sechPeads:S:6日1Questions:7que护iesPe护second510讨querie忍:日opens:" src="http://www2ctocom/uploadfile/Collfiles//png" 7plu忍htahle忍:1opentablaug:日。日日1夕sql&"=""&
可以看到server的字符集还是latin1,这里就需要讲一下常用的字符集了。
为了世界的和平和繁荣昌盛,ISO组织指定了一套unicode字符集方案,Unicode编码是不同编码之间相互交流转换的桥梁,包含了32位二进制,所以能容纳2的31次方的字符,有生之年是够用了。而根据不同的需要Unicode又分为三种方案。
Utf8:用以解决国际上不同语言而出现的编码。对英文是使用8位,中文则为3位。可以在任何支持utf9字符集的浏览器上显示,无需另行处理。
另外两种为utf16和32,这里不再编著。大家自行查阅即可,总的还是因为存储和使用的方便来决定使用哪种。
好了,另外相对熟悉的就是gbk,俗称国标码,中国国家标准来制定,仅仅包含中文字符。所以相对两讲,utf8的兼容更好,但是存储量更大。
马上回来,大致对字符集充了电还是回来先解决问题。这里所以用gbk或者utf8都是可以的。但是latin1肯定是不可以的,这里主要通过这样一个命令来设置
分别设置设置了服务器、数据库和数据表部分的编码,必须设置连接编码。连接编码设置如下:
mysql& SET character_set_client='gbk';
mysql& SET character_set_connection='gbk'
mysql& SET character_set_results='gbk'
设置好编码,下面便可以成功插入中文了,其实用一句话即可解决
查看数据库编码格式
show variables like 'character_set_%';
查看数据库中的表的创建
设置数据库编码格式
setnames 'gbk';
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具spring mvc url 中文乱码_
spring mvc url 中文乱码
以下内容已过滤百度推广
日&-&1:表单提交controller获得中文参数后乱码解决方案 注意: jsp页面编码设置为utf-8 form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果...&&普通
日&-&1.今天在做一个例子的时候,发现不能正确接收中文的url参数,试了各种解决办法都不可以。 以下是代码:controller: package com.springapp. impo...&&普通
日&-&今天自己动手搭建springmvc框架,搭建完成后测试时,在浏览器输入测试地址http://localhost:8090/springmvc/helloworld.do?username=测试,出现中文乱码...&&普通
日&-&注:配置usebodyencodingforuri=&true&后,可以解决普通get请求的中文乱码问题,但是对于通过ajax发起的get请求中文依然会乱码,请把usebodyencodingforur...&&普通
日&-&关于部署到tomcat的java web项目中文乱码的问题着实不少,最近解决了这方面的问题后小有体会,今天分享给大家。
当访问带中文参数的url,或者提交get方...&&普通
日&-&乱码是让人很头疼的一件事,本文介绍了彻底解决spring mvc中文乱码问题的方案,具体如下:
1:表单提交controller获得中文参数后乱码解决方案 注意: jsp...&&普通
日&-&彻底解决spring mvc 中文乱码问题_计算机软件及应用_it/计算机_专业资料。1:表单...11.&url-pattern&/*&/url-pattern& 12.&/filter-mapping& 这里需要...&&百度文库
日&-&spring mvc 中利用 @requestparam来解析url中的参数,但默认情况下spring mvc的编码方式为 &iso-8859-1&,因此如果参数的中文会出现乱码的情况,只要将...&&普通
java - springmvc接收url中文参数乱码 - segmentfault日 - 1.今天在做一个例子的时候,发现不能正确接收中文的url参数,试了各种解决办法都不可以。 ...&&普通
摘要: 在工作上使用spring老是碰到一个问题,使用controller处理get方式的请求参数时,服务端得到的结果会碰到乱码,之前翻阅了很多与java ee相关的很多乱码处理资料,不...&&普通
语义关联近似词猜&正规性45地理位置网址标题|网址|摘要F0略略略略略略略精确匹配1略略略略略略略精确匹配2略略略略略略略精确匹配3略略略略略略略精确匹配4略略略略略略略精确匹配5略略略略略略略精确匹配6略略略略略略略精确匹配7略略略略略略略精确匹配8略略略略略略略精确匹配9略略略中略略略精确匹配10
12时间限制猜&实时动态5相关检索词泛时效性8F1略略略略略略略略1略略略略略略略略2略略略略略略略略3略略略略略略略略4略略略略略略略略5略略略略略略略略6百度文库略略略略略略略7略略略略略略略略8略略略略略略略略9略略略略略略略略10
url2345摘要前标题后标题F2略略略略略正文略1略略略略略正文略2略略略略略正文略3略略略略略正文略4略略略略略正文略5略略略略略正文略6略略略略略正文略7略略略略略正文略8略D略略略正文略9略略略略略正文略10
123原创猜&网址形式6相关词猜&相似度F3略略略略子页优先级较低略略精确匹配1略略略略子页优先级较低略略精确匹配2略略略略子页优先级较低略略精确匹配3略略略略子页优先级较低略略精确匹配4略略略略主页次优先&|&子页内容充实略略精确匹配5略略略略主页次优先&|&子页内容充实略略精确匹配6略略略略子页优先级较低略略精确匹配7略略略略子页优先级较低略略精确匹配8略略略略主页次优先&|&子页内容充实略略精确匹配9略略略略子页优先级较低略略精确匹配10
如果本网站的个别行为侵犯了任何一方的正当权益,请联系我们:我们在核实后将在最短的时间内删除,并致以诚挚歉意。SpringMVC form表单中文乱码解决方案(基于JavaConfig) - zhoucheng05_13的博客 - CSDN博客
SpringMVC form表单中文乱码解决方案(基于JavaConfig)
SpringMVC表单提交数据后,数据库中的数据中文乱码,通过show variables like "%char%"; 查看数据库编码,发现的确是UTF-8,说明数据库没有问题,问题出在服务器上。
通过搜集资料得到了简便的解决方法,在WebInitializer中,重写AbstractAnnotationConfigDispatcherServletInitializer的onStartup方法:
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.addFilter("name", new CharacterEncodingFilter("UTF-8", true))
.addMappingForUrlPatterns(null, false, "/*");
整个初始化类如下所示:
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
protected Class&?&[] getServletConfigClasses() {
return new Class&?&[]{WebConfig.class};
protected Class&?&[] getRootConfigClasses() {
return new Class&?&[]{RootConfig.class};
protected String[] getServletMappings() {
return new String[] {"/"};
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.addFilter("name", new CharacterEncodingFilter("UTF-8", true))
.addMappingForUrlPatterns(null, false, "/*");
该方法通过测试,成功决绝中文乱码问题。
我的热门文章
即使是一小步也想与你分享温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1613)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'spring mvc3
提交表单乱码问题解决方法',
blogAbstract:'在web.xml中添加几行代码即可:&&filter&&&&filter-name&characterEncodingFilter&/filter-name&&&&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&&&&init-param&&&&&param-name&encoding&/param-name&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:4,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 硬件维修学校 的文章

 

随机推荐