當前位置:首頁 » 凈水方式 » 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