导航:首页 > 净水问答 > filter过滤所有乱码

filter过滤所有乱码

发布时间:2021-03-31 10:27:10

Ⅰ 如何配置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>

Ⅱ scala:列表(List)经过过滤操作后(filter),打印出来是乱码(@+数字),toString也没作用

我看你用的是array吧
贴代码

Ⅲ 关于java过滤器解决中文乱码的

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

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

Ⅳ 如何使用过滤器解决jsp乱码

打开web项目,在src中新建一个类,规范一下编程习惯我们就把它放到一个包中去,项目右键新建“class”,包名填写例如“com.test.struts.filters”(习惯是域名反转),文件名首字母大写,例如“SetCharacterEncoding”。下面是类中的代码,实际上就是实现了Filter接口,重写了一下doFilter函数。

packagecom.test.hibernate.filters;

importjava.io.IOException;

importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;{


/*(non-Javadoc)
*@seecom.sun.net.httpserver.Filter#doFilter(com.sun.net.httpserver.HttpExchange,com.sun.net.httpserver.Filter.Chain)
*/
publicvoiddoFilter(ServletRequestsrequest,ServletResponsesresponse,
FilterChainchain)throwsIOException,ServletException{
HttpServletRequestrequest=(HttpServletRequest)srequest;
HttpServletResponseresponse=(HttpServletResponse)sresponse;

//注意这里请求和响应都强制转化了一下
request.setCharacterEncoding("UTF-8"); //设置请求编码“UTF-8”比较通用
response.setCharacterEncoding("UTF-8"); //设置相应编码
chain.doFilter(srequest,sresponse);//转发请求
}

publicvoiddestroy(){
//TODOAuto-generatedmethodstub

}

publicvoidinit(FilterConfigarg0)throwsServletException{
//TODOAuto-generatedmethodstub

}

}

web配置文件配置filter文件,打开web.xml文件,在<web-app></web-app>之间加入如下配置,<filter></filter>是设置类路径的,<filter-mapping></filter-mapping>是用来映射指定路径文件到filter的。

<filter>
<filter-name>setEncoding</filter-name>
<filter-class>com.test.struts.filters.SetCharacterEncodingFilter</filter-class>
<!--这里还可以使用初始变量
<init-param>
<param-name>name</param-name>
<param-value>value</param-value>
</init-param>
再在SetCharacterEncoding.java的定义一个privateStringencoding=null;
在init函数中加一句this.encoding=filterConfig.getInitParameter("encoding");
-->
</filter>
<filter-mapping>
<filter-name>setEncoding</filter-name><!--这个名称和上面的要相同-->
<url-pattern>/*</url-pattern><!--所有文件-->
</filter-mapping>

配置完后运行一下项目就不再看到那烦人的乱码了!

Ⅳ 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 filter 过滤器中文乱码 怎么解决啊

1、首先编写一个Java类的filter代码。操作步骤:
(1)在myeclipse中新建一个java类,

(2)单击“Add”按钮,在弹出来的对话框中“选择接口”文本框中输入Filter,
并选择匹配好的类型javax.servlet
(3)单击“OK”按钮返回"New Java Class"对话,然后单击“Finish”按钮,就可以看到创建的过滤器框架:
过滤器类:Encoding.java,代码如下:
package com;
import java.io.IOException;
import javax.servlet.*;
public class Encoding implements Filter {
protected String encoding=null;
protected FilterConfig config;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(request.getCharacterEncoding()==null){
//得倒指定的编码
String encode=getEncoding();
if(encode!=null){
//设置request的编码
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.config=filterConfig; //得到web.xml中的配置编码
this.encoding=filterConfig.getInitParameter("Encoding");
}
protected String getEncoding(){
return encoding;

}
}
2、在web.xml文件写入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter> <!-- 控制编码 -->
<filter-name>EncodingFilter</filter-name>
<filter-class>com.Encoding</filter-class>
<init-param> <!-- 初始化参数 -->
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

Ⅶ 用filter过滤器处理乱码,却没有产生作用,哪位给指点一下

下次希望你能排版一下代码 这样不容易看懂.....

Ⅷ Java乱码问题。我配置一个Filter,但是搜索却失效了。

web.xml里面配置的<param-value>是utf-8么?
还有doFilter里面
response.setContentType("text/html;charset=" + encoding);
request.setCharacterEncoding(encoding);
俩都写上

Ⅸ java web 乱码过滤器 filter 有什么作用

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

Ⅹ 不用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>

阅读全文

与filter过滤所有乱码相关的资料

热点内容
爱惠浦复合滤芯怎么拆 浏览:528
红外光谱树脂 浏览:786
平凉造纸厂污水处理设备哪里有 浏览:698
sg3树脂与sg5 浏览:157
B48N固体树脂 浏览:485
树脂模片用在什么地方 浏览:26
水稀释性丙烯酸树脂的制备 浏览:997
减压蒸馏能够除去微量溶剂吗 浏览:17
购买的桶装蒸馏水保质期是多久 浏览:64
全屋净水怎么做的 浏览:556
皮革污水处理生化池出水红色 浏览:878
污水处理厂工艺厂长岗位职责 浏览:666
学校雨污水施工视频 浏览:812
自来水水垢去除 浏览:162
污水处理厂水量计量 浏览:261
立升净水前景如何 浏览:664
生活污水反应池作用 浏览:29
万和净水器怎么样啊 浏览:127
变速箱油滤芯堵塞怎么办 浏览:634
爽力厨房净水器多少钱一台 浏览:27