导航:首页 > 净水问答 > filter过滤器处理中文乱码

filter过滤器处理中文乱码

发布时间:2022-08-21 21:20:57

『壹』 不用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的过滤器如果优先于spring的编码过滤器就会出现乱码情况 需要将spring的编码过滤器优先等级提高

『叁』 如何配置Filter过滤器处理JSP中文乱码

注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk。虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致。所以编译出错。
解决方法:所有地方都用utf-8或gbk

//过滤器类
CharactorFilter.jsp
package cn.com.Filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharactorFilter implements Filter { //继承Filter类
//字符编码
String encoding=null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
}
//传递给下一个过滤器
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//获取初始化参数
encoding=filterConfig.getInitParameter("encoding");
}
public void destroy() {
// TODO Auto-generated method stub
encoding=null;
}
}

web.xml
<filter> <!--注意这里是filter,不要配置成servlet-->
<filter-name>CharactorFilter</filter-name> <!--过滤器名称-->
<filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--过滤器的完整类名-->
<init-param> <!--初始化参数-->
<param-name>encoding</param-name> <!--参数名称-->
<param-value>utf-8</param-value> <!--参数值-->
</init-param>
</filter>
<filter-mapping> <!--过滤器映射-->
<filter-name>CharactorFilter</filter-name><!--过滤器名称-->
<url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->
</filter-mapping>

『肆』 struts2 中文乱码问题

处理中文乱码的filter网上找一个,然后再web.xml里配置,注意这个filter要放到struts2的filter的前面,这样才先经过他。你直接放到最web.xml的最前面就是了。如果在后面struts2都处理,才轮到中文filter当然不行了。

<constant name="struts.i18n.encoding" value="GBK" /> 只有在struts2。1.8更新的版本才能用。你可以不用spring的过滤器,你网站找一个filter的类,放到项目里,配置一下。我建议用UTF-8的国际编码。页面开头的编码类型不管用,还有网也提交数据用表单,别只用url来提交。

『伍』 jsp Charset首字母大写能解决乱码

设置一下编码:
1。全局编码设置:编码设置的方法:ToolBar-->Window-->Preferences-->General-->Workspace-->Text file encoding,设置合适的编码。
2。局部编码设置:在源码按右键-->General-->Editors-->Test Editors-->Spelling-->Encoding,这里是设置单个文件的编码。
推荐还是使用全局编码设置吧

MyEclipse编码设置:
Windows-->Preferences-->MyEclipse(Enterprise Workbench)--> Files and Editors-->JSP-->右Encoding->(UTF-8)-->Update

文件默认编码设置:
Windows-->Preferences-->General-->Content Types, 然后在右边上面的框中打开Text, 选中Java Source File (你看到下面的框中有个*.java 就对了), 然后在下面的“Default edcodng”文本框中输入“UTF-8”, 点“Update”,就OK了。(什么文件的编码都可以在这里设置!)
其它的Edit-SetEnCoding 和Project-->Properties-->Resource-->Text File Encoding设置成继承自容器就可以了。
3。Window-Preferences-General-Content Types-Text-Java Source File-UTF-8

『陆』 如何解决在Servlet向数据库写记录时中文乱码

可以用filter过滤器对所有的servlet进行过滤,在过滤器里处理字符编码,对所有的字符都是用utf-8
public
void
doFilter(ServletRequest
request,
ServletResponse
response,FilterChain
chain)
throws
IOException,ServletException
{
HttpServletRequest
httpRequest
=
(HttpServletRequest)
request;
httpRequest.setCharacterEncoding("utf-8");
chain.doFilter(request,
response);
}

『柒』 maven filter 中文乱码,应该用什么思路解决

1、查看被fitler的文件是否带utf-8的Bom头,去掉bom头,带了有可能报错
2、windows maven的war插件的版本,2.1-bata-1有问题,它的编码识别有问题,怀疑是按照iso-5589-1解析,fitler后的文件16进制查看为3f,造成黑洞现象
3、网上很多解决方式是改成gbk,这个是一种解决方案,如果希望继续使用utf-8编码的,请修改war的filter,还有不要忘记resource插件的编码设置。

『捌』 关于java过滤器解决中文乱码的

因为你袭遗漏了重要的一步。正确的方法如下:

if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
response.setCharacterEncoding(encoding);
}
//传递给下一个过滤器
chain.doFilter(request,response);

『玖』 struts2中如何用过滤器处理中文乱码

<!-- 乱码过滤器 -->
<filter>
<filter-name>CharaterencodeFilter</filter-name>
<filter-class>com.CharaterEncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharaterencodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

放在web.xml里
相应的类也给你
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public class CharaterEncodeFilter implements Filter {
private FilterConfig config = null;

public void destroy() {
this.config = config;
}

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

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
config = null;
}

}

阅读全文

与filter过滤器处理中文乱码相关的资料

热点内容
日本进口自来水净化器一台多少钱 浏览:483
EDi去离子设备价格 浏览:422
中石化128树脂 浏览:689
污水处理厂高压压力多少 浏览:438
水壶里的水垢的主演成分 浏览:164
45方缸森森302过滤桶 浏览:834
现代铁路机车厕所污水如何处理 浏览:243
怎么设置无线路由器的网站过滤 浏览:126
万亿农村污水处理市场 浏览:256
污水比重怎么计算 浏览:440
福特嘉年华空气滤芯底座怎么拆 浏览:503
污水井圈井盖尺寸 浏览:582
净水机与管线怎么连接 浏览:863
不结水垢的电热管 浏览:650
苯乙烯树脂性能 浏览:409
环氧树脂老化机理方程 浏览:433
树脂餐桌腿 浏览:527
ppf滤芯什么意思 浏览:543
净水器废水管出水细怎么办 浏览:921
市政污水厂设计资质 浏览:893