1. 程式人生 > >javaweb專案中解決url中傳過來的中文是亂碼

javaweb專案中解決url中傳過來的中文是亂碼

從jsp頁面中傳遞到servlet中的值經常出現亂碼問題


問題描述


1:jsp頁面設定了編碼格式為utf-8

2:servlet頁面也設定了utf-8

3:工作空間也設定了utf-8

4:但是從jsp頁面傳遞到servlet頁面的值還是出現中文亂碼


ps:傳遞的值為英文時一般不會出現亂碼


統一的解決方法:設定編碼格式的filter.


1:建立EncodingFilter,用於統一專案的編碼格式

2:encodingFilter內容如下:

public class EncodingFilter1 implements Filter {
	
	public void init(FilterConfig filterConfig) throws ServletException {

	}
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// 設定請求碼
		request.setCharacterEncoding("utf-8");
		//設定響應碼
		response.setCharacterEncoding("utf-8");
		// 處理響應亂碼
		response.setContentType("text/html;charset=utf-8");
		chain.doFilter(request, response);
	}
	public void destroy() {

	}
}

ps:tomcat7.0以上的直接在建立的時候配置Filter mappings,如下圖所示:設定為/*,最後點選finish即可

tomcat7.0及7.0以下的在web.xml中配置如下所示:

<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>cn.itcast.itcaststore.web.filter.EncodingFilter1</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>