导航:首页 > 净水问答 > spring过滤器解决乱码

spring过滤器解决乱码

发布时间:2020-12-15 00:42:21

『壹』 springmvc 在web配置了编码拦截器,并且我整个工程都是UTF-8格式的,为什么responseText中文还是乱码

<%@pagecontentType="text/html;charset=UTF-8"%>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">

你所说的整个工程都是UTF-8格式,那么jsp页面上是不是专都加上了这两属句

『贰』 如何在Spring中解决中文乱码的方法

可以编写一个Filter
public class EncodingFilter implements Filter {
/** 编码 */
String encoding = null;

/** 销毁编码 */
public void destroy() {
.encoding = null;
}

/**
* 执行过滤链,对请求和相应设置编码
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

if (encoding != null) {
// 对请求进行编码设置
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
}
// 将处理权转交给下一个处理器
chain.doFilter(request, response);
}

/**
* 初始化编码,从配置文件中获取编码的值
*/
public void init(FilterConfig filterConfig) throws ServletException {

this.encoding = filterConfig.getInitParameter("encoding");

}

}

需要再Web.xm中注册拦截器
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.sato.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>

『叁』 通过spring依赖注入时,得到的实体对象的中文属性值是乱码,该怎么解决

检查一下你项目的编码,改成utf8的

『肆』 springmvc js ajax请求 中文乱码问题

初略的看了一下你的问题,大概明白了,出现乱码的原因大概是你的服务器编专码问题,属tomcat的默认编码是ISO-8859-1这种编码,所以如果你需要更改,tomcat/conf/server.xml中找到 Connector 在后面加上 URIEncoding="UTF-8" 即可,如果不更改的话,你就得在action中,也就是接受端用ISO-8859-1解码回来,如new String(str.getBytes("ISO-8859-1"),"UTF-8");如果用了拦截器的话,就在拦截器中统一解码好啦。你可以试试!希望能帮到你哦!

『伍』 spring MVC接收中文乱码问题

1:表单提交controller获得中文参数后乱码解决方案
注意:jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<formaction="${ctx}/user/addUser"name="userForm"method="post">
修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2:表单提交controller获得中文参数后正常显示控制台,然后保存数据库出现乱码
注意:数据库编码是否支持中文
数据库表和表字段是否正确

在配置连接数据库的参数设置修改:
<propertyname="url"value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>第一种情况:
jsp页面中文输入,到controller乱码,这时候需要设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8,代码如下:
Web.xml配置文件:
view
sourceprint?
01.<filter>
02.<filter-name>CharacterEncodingFilter</filter-name>
03.<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
04.<init-param>
05.<param-name>encoding</param-name>
06.<param-value>utf-8</param-value>
07.</init-param>
08.</filter>
09.<filter-mapping>
10.<filter-name>CharacterEncodingFilter</filter-name>
11.<url-pattern>/*</url-pattern>
12.</filter-mapping>


这里需要注意的是,最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。
第二种情况:
数据库中文数据,jsp页面显示乱码(不是严格意义上的乱码,而是以问号的形式呈现)
由于我们前后台的数据交互使用的是json数据,出现这种情况的原因我也不太清楚,之前也没遇到过,只能怪自己做过的项目太少,解决起来也不困难,只需要在转json的时候设置一下编码格式就可以了,代码如下:
view
sourceprint?
1.response.setContentType("application/json;charset=UTF-8");//防止数据传递乱码
写上这句话就不会再出现乱码了。
第三种情况:
页面中文,传递到controller也是正确的,但是保存到数据库之后就是乱码(也不是严格意义的乱码,跟上面一样全是问号)
这个问题困扰了我一段时间,开始觉得数据库的编码格式不正确,重新创建了编码格式为utf-8的数据库也还是不可以,最后觉得是jboss的问题,我们的服务器用的是jboss,上网查了资料在连接数据源的时候加上编码格式就可以了

『陆』 spring乱码问题,菜鸟求教

1:表单提交controller获得中文参数后乱码解决方案
注意: jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果
[html] view plain
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
[html] view plain
<form action="${ctx}/user/addUser" name="userForm" method="post">    
修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)
[html] view plain
<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>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>characterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  

2:表单提交controller获得中文参数后正常显示控制台,然后保存数据库出现乱码
注意:
数据库编码是否支持中文
数据库表和表字段是否正确

在配置连接数据库的参数设置修改:
[html] view plain
<property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>

『柒』 为什么使用了SPRING 过滤器还会出现中文乱码

MVC的过滤器如果优先于spring的编码过滤器就会出现乱码情况 需要将spring的编码过滤器优先等级提高

『捌』 不用spring怎么写filter来解决中文乱码的问题,谢谢!在线等

可以编写一个Filter
public class EncodingFilter implements Filter {
/** 编码 */
String encoding = null;

/** 销毁编码 */
public void destroy() {
this.encoding = null;
}

/**
* 执行过滤链,对请求和相应设置编码
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

if (encoding != null) {
// 对请求进行编码设置
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
}
// 将处理权转交给下一个处理器
chain.doFilter(request, response);
}

/**
* 初始化编码,从配置文件中获取编码的值
*/
public void init(FilterConfig filterConfig) throws ServletException {

this.encoding = filterConfig.getInitParameter("encoding");

}

}

需要再Web.xm中注册拦截器
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.sato.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>

『玖』 spring mvc用注解方式配置控制器,怎么出现乱码

1:表单提交controller获得中复文参数制后乱码解决方案
注意: jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果

[html] view plain
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
[html] view plain
<form action="${ctx}/user/addUser" name="userForm" method="post">

『拾』 在使用ssh框架中,出现了 中文乱码问题 ,怎么解决

解决乱码几小点:
1.配置过滤器,可以选择自己写,既然你用的SSH框架就更简单了,直接用Spring的过滤器,web.xml里配置一下即可。

2.Jsp页面设置编码,所有地方都要相同,我习惯用GBK
<%@ page contentType="text/html;charset=GBK" %>
也可以使用HTML的页面编码配置
<meta http-equiv="Content-Type" content="text/html; charset=GBK">

3.配置Tomcat(我们用,别的服务器另找)编码
在server.xml中配置,如:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />

4.如果还出现乱码,只能用这招了,我很少用
new String(s.getBytes("ISO-8859-1"),"GBK")

一般用Form提交前两种方式就不会出现乱码,用get请求,在url后追加中文参数前两种不管用,需配置Tomcat或者第四种,重新编码

阅读全文

与spring过滤器解决乱码相关的资料

热点内容
反渗透膜是从中间出水嘛 浏览:694
楼上漏水贴了瓷砖的墙被污水泡了 浏览:934
魅尚空气净化器怎么样 浏览:28
腌制废水含盐量 浏览:583
湖南有污水处理厂吗 浏览:588
活性炭滤芯怎么清除 浏览:571
污水处理如何投加污泥 浏览:531
超韧树脂镜片的价位是多少 浏览:26
大众的汽油滤芯怎么插 浏览:63
污水厂防腐qc课题 浏览:887
离子交换树脂法可以用于生产什么 浏览:630
污水进管道超标 浏览:231
汽车美容污水处理方案 浏览:880
污水接户井是干什么的 浏览:309
饮水机底下的清洁有什么用 浏览:267
上饶反渗透膜修复剂怎么样 浏览:70
污水池占用土地面积多少钱一亩 浏览:988
家里装修净水器怎么埋管 浏览:804
暖水壶经常有水垢 浏览:794
污水提升泵怎么接线 浏览:864