SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码)



情况二: Controller 中 request.getParameter()获取到的是乱码


@RequestMapping(params = "method=submit")
    public String submit(HttpServletRequest request, ModelMap modelMap) throws Exception{
        String uname = request.getParameter("uname");
                .
                .
                .
        return "index_view";

}

Request默认编码是iso-8859-1,而前台是utf-8编码,导致获取值输出发现是乱码。从网上找了很多种办法,以下方法都没有生效:

1. 添加filter

jsp页面中文输入,到controller乱码,这时候需要设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8,代码如下:

Web.xml配置文件:

<filter>

<filter-name>CharacterEncodingFilter</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>

</filter>

<filter-mapping>

<filter-name>CharacterEncodingFilter</filter-name>

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

</filter-mapping>

这里需要注意的是,最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。

2. 设置request字符集

往往从前台传入到对应的controller或者是action之后出现乱码,讲讲我一般的思路是先打印request本身默认的字符集

System.out.println(request.getCharacterEncoding());

接着按照情况,如果打印的不是所需要的字符集则设置相应字符集即可

request.setCharacterEncoding("UTF-8");

有效解决办法: 获取时从iso-8859-1转化成utf-8格式。(但此方法较为麻烦)

@RequestMapping(params = "method=submit")
    public String submit(HttpServletRequest request, ModelMap modelMap) throws Exception{
        String uname = new String((request.getParameter("uname")).getBytes("iso-8859-1"),"utf-8");
                .
                .
                .
        return "index_view";

}

情况三:



SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

时间: 2024-10-12 04:03:50

SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;的相关文章

SpringMvc项目中使用GoogleKaptcha 生成验证码

SpringMvc项目中使用GoogleKaptcha 生成验证码 前言:google captcha 是google生成验证码的一个工具类,其原理是将随机生成字符串保存到session中,同时以图片的形式返回给页面,之后前台页面提交到后台进行对比. 1.jar包准备 官方提供的pom应该是 <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</arti

项目记录:spring+springmvc 项目中 @Transactional 失效的解决方法

第一步,修改spring的配置文件和springmvc的配置文件 --------------------------------applicationContext.xml <context:annotation-config/>  <context:component-scan base-package="com.xxx"> <context:exclude-filter type="annotation" expression=&

SpringMVC项目中web.xml中的节点加载顺序问题

SpringMVC项目中web.xml中的节点加载顺序问题,之前以为web.xml中就是一些配置信息,和节点的顺序没有关系,后来才发现初始化时的加载顺序是和节点的顺序相关的. 完整的web.xml文件内容: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=&quo

在项目中导入import javax.servlet 出错解决办法

我们有时会把别人的项目copy到自己这里进行二次开发或者参考学习,有的时候会发生下图的错误,即eclipse项目里我们导入的项目里提示HttpServletRequest 不能引用,会伴随头疼的小红叉出现 具体原因是我们工程里面web-inf/lib目录下少了相应的包:Package javax.servlet.http引起的:通俗且确切的讲就是缺少TOMCAT_HOME\lib下的servlet-api.jar.在别人的机器上他配置了Server,一般都是tomcat,而在拷贝的过程中Serv

node开发指南中的microblog项目中遇到的问题总结及解决方法

1      使用connect-mongdo时,报错:Cannot read property 'Store' of undefined 解决: require('connect-mongo')的时候加一个参数express,如下: var express = require('express'); var MongoStore = require('connect-mongo')(express), 2      使用app.use(express.router(routers)) 提示 h

如何在SpringMVC项目中部署WebService服务并打包生成客户端

场景 某SpringMVC项目原本为一个HTTP的WEB服务项目,之后想在该项目中添加WebService支持,使该项目同时提供HTTP服务和WebService服务.其中WebService服务通过 /ws/** 地址拦截. 配置 通过配置让SpringMVC支持WebService. 依赖 首先通过Maven引入必要依赖包. org.apache.cxf org.apache.neethi com.ibm.wsdl4j org.apache.XmlSchema Web.xml 通过配置Web

spring web(SpringBoot,SpringMVC)项目中返回自定义格式的JSON,不暴露不必要的字段

笔者的web项目中使用RESTFul规范和前台进行交互. 原始代码 返回的json数据格式如下: 对应的后台实体类及交互方法: JsonResult.java public class JsonResult { private int code; private String message; private String nextUrl; private Object data; public JsonResult(int code, String message) { this.code =

SpringMVC项目中获取所有URL到Controller Method的映射

Spring是一个很好很强大的开源框架,它就像是一个容器,为我们提供了各种Bean组件和服务.对于MVC这部分而言,它里面实现了从Url请求映射控制器方法的逻辑处理,在我们平时的开发工作中并不需要太多的理会这个Url是怎么和控制器中的方法建立映射的,一切都由Spring MVC帮我们搞定了. 但是我今天在做SDK工程的时候,突然产生一个想法:能否把我项目中的所有Url和Method的映射信息打印出来?以便我一眼就看出我已经完成了那些API接口开发,这些方法需要什么参数.就像下图所示: 有了想法就

springmvc项目中调用controller方法报406错误

在controller类的方法中添加了注解:@ResponseBody 网页抛出错误: The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers () 网页能够成功的调入该方法,但是返回的json结果不能正常接收,页面抛出以上错误.