javaweb專案中解決url中傳過來的中文是亂碼
阿新 • • 發佈:2018-11-28
從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>