当前位置:首页 » 净水方式 » servlet过滤器乱码

servlet过滤器乱码

发布时间: 2021-03-21 15:30:12

㈠ Servlet与Servlet之间页面传递的中文乱码问题,怎么解决

首先保证所有文件编码一致

如果还有就写个过滤器吧,一劳永逸

三、字符编码的过滤器

import javax.servlet.*;
import java.io.IOException;

/**
* 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题
*/
public class CharacterEncodingFilter
implements Filter
{
protected FilterConfig filterConfig = null;
protected String encoding = "";

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
{
if(encoding != null)
servletRequest.setCharacterEncoding(encoding);
filterChain.doFilter(servletRequest, servletResponse);
}

public void destroy()
{
filterConfig = null;
encoding = null;
}

public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");

}
}

具体介绍和使用方法教程看这里

http://blog.chinaunix.net/u1/55983/showart_713077.html

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

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

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

㈢ 为什么配置的乱码过滤器解决不了乱码,求大神解决

  • 因为你遗漏了重要的一步。正确的方法如下内: if(encoding!=null){ //设置容request字符编码 request.setCharacterEncoding(encoding); //设置response字符编码 response.setContentType("text/html;charset="+encoding); response.setCharacterEnco...

㈣ 如何使用过滤器解决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>

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

㈤ 求助servlet中文乱码如何解决。。。

网上的方法,要对应你的不同种情况的,首先保证jsp中编码是中文的,然后保证服务器回传的编码模式也是一致的,最后把工作空间编码改成一致就可以

㈥ servlet获取JSP页面内容为乱码怎么解决

  1. jsp提交数据有两种方式,一种是post,一种是get,两种不同的提交方式对中文的处理也不同。

  2. post提交方式只需在servlet中设置好request.setCharacterEncoding("编码集"); 注:编码集按照您的需求写,可以是UTF-8,也可以是GBK或GB2312.

  3. get提交方式则需要转码,因为tomcat服务器编码集为ISO8859-1,需要手动转码,下方代码是我个人编写的一个工具类,希望对你有帮助!另外jsp传递中文如果用get提交方式,在前台对中文也要


  4. (StringoldString){
    StringnewString="";
    try{
    newString=newString(oldString.getBytes("ISO-8859-1"),"UTF-8");
    }catch(UnsupportedEncodingExceptione){
    e.printStackTrace();
    }
    returnnewString;
    }
  5. 如既有可能有post提交方式,也有可能有get提交方式,可以采用修改tomcat的server.xml文件,或采用过滤器,修改server.xml文件方式为:
    <ConnectorURIEncoding="utf-8"connectionTimeout="20000"port="8080"protocol="HTTP/1.1"redirectPort="8443"/>

㈦ 在servlet中获取页面中文数据时变成乱码怎么办

实在不行,用过滤器解决中文乱码问题

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

㈨ Java 乱码问题 怎样写一个过滤器文件来处理乱码问题啊

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 javax.servlet.http.HttpServletRequest;public class PageEncodeFilter implements Filter { private FilterConfig fConfig;
private String encode;
public void destroy() {
this.fConfig = null;
this.encode = null;
} public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain fc) throws IOException, ServletException {
HttpServletRequest hsr = (HttpServletRequest)arg0;
hsr.setCharacterEncoding(this.encode);
fc.doFilter(arg0, arg1);
} public void init(FilterConfig fConfig) throws ServletException {
this.fConfig = fConfig;
this.encode = this.fConfig.getInitParameter("encode");
}}然后到.xml 下配置 <filter>
<filter-name>PageEncodeFilter</filter-name>
<filter-class>com.popedom.util.PageEncodeFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>PageEncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

㈩ jsp 中的servlet如何解决乱码问题啊

1. 在web工程中创建一个实现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 EncodingFilter implements javax.servlet.Filter {
private String encoding = "GBK";
public String getEncoding() {
return encoding;
}

public void setEncoding(String encoding) {
this.encoding = encoding;
}

public void destroy() {
// TODO Auto-generated method stub

}

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

request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {

}

}
----------------------------------------------------------------
2. 在web.xml 文件中加入以下代码
<!-- 中文乱码过滤处理 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>
EncodingFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-----------------------------------------------------------------
以上应该就可以解决中文乱码问题了.

热点内容
丁度巴拉斯情人电影推荐 发布:2024-08-19 09:13:07 浏览:886
类似深水的露点电影 发布:2024-08-19 09:10:12 浏览:80
《消失的眼角膜》2电影 发布:2024-08-19 08:34:43 浏览:878
私人影院什么电影好看 发布:2024-08-19 08:33:32 浏览:593
干 B 发布:2024-08-19 08:30:21 浏览:910
夜晚看片网站 发布:2024-08-19 08:20:59 浏览:440
台湾男同电影《越界》 发布:2024-08-19 08:04:35 浏览:290
看电影选座位追女孩 发布:2024-08-19 07:54:42 浏览:975
日本a级爱情 发布:2024-08-19 07:30:38 浏览:832
生活中的玛丽类似电影 发布:2024-08-19 07:26:46 浏览:239