URL乱码问题处理
首先是过滤器,通过过滤器可以设置所有的post请求
<filter> <filter-name>struts2</filter-name> <filter-class>info.frady.filter.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
package info.frady.filter;import java.io.IOException;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;public class FilterDispatcher extends StrutsPrepareAndExecuteFilter {public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {request.setCharacterEncoding("UTF-8");HttpServletRequest httpRequest = (HttpServletRequest) request;String url = httpRequest.getRequestURI();super.doFilter(request, response, filterChain);}}package info.frady.util;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;public class UrlUtil {public static final String encode(String s, String encoding) {try {return URLEncoder.encode(s, encoding);} catch (UnsupportedEncodingException e) {return s;}}public static final String dncode(String s, String encoding) {try {return URLDecoder.decode(s, encoding);} catch (UnsupportedEncodingException e) {e.printStackTrace();return s;}}public static final String encodeDefault(String s) {try {return URLEncoder.encode(s, "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();return s;}}}<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />