在一般的web項目中,上傳文件和下載文件很常見。但是當上傳的文件名中包含中文時,有時會出現(xiàn)亂碼問題。要解決這個問題,只需要統(tǒng)一的設置編碼集就可以,這個可以通過Filter來實現(xiàn)。
在線java視頻教程推薦:java在線視頻
下面是寫的Filter類,如下:
package com.newview.bysj.filter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; public class EncodingFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; //設置請求的字符集 httpServletRequest.setCharacterEncoding("UTF-8"); //將請求放行到目的地址 filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }
要使該Filter類起作用,還需要在web.xml中進行配置,具體的配置如下:
<!--定義Filter--> <filter> <display-name>EncodingFilter</display-name> <!--Filter的名字--> <filter-name>EncodingFilter</filter-name> <!--Filter的實現(xiàn)類--> <filter-class>com.newview.bysj.filter.EncodingFilter</filter-class> </filter> <!--定義Filter攔截的url--> <filter-mapping> <filter-name>EncodingFilter</filter-name> <!--Filter攔截的url--> <url-pattern>*.html</url-pattern> </filter-mapping>