读书人

处置get请求时编码的拦截器

发布时间: 2012-12-29 10:28:09 作者: rapoo

处理get请求时编码的拦截器

package com.whaty.platform.sso.web.interceptor;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.util.Iterator;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class UrlDecodeFilterInterceptor extends AbstractInterceptor {private static final long serialVersionUID = -2335290125344040914L;private static final Log LOG = LogFactory.getLog(UrlDecodeFilterInterceptor.class);public String intercept(ActionInvocation invocation) throws Exception {Map parameters = invocation.getInvocationContext().getParameters();HttpServletRequest request = ServletActionContext. getRequest(); if("get".equalsIgnoreCase(request.getMethod())){for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {String param = (String) i.next();String[] values = (String[])parameters.get(param);if(values != null && values.length > 0){for (int j = 0; j < values.length; j++) {if(values[j] != null && !"".equals(values[j])){try {values[j] = new String(values[j].getBytes("iso8859-1"),"UTF-8");parameters.put(param, values[j]);} catch (UnsupportedEncodingException e1) {e1.printStackTrace();} }}}}}if("application/x-www-form-urlencoded;charset=UTF-8".equals(request.getContentType())){for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {String param = (String) i.next();String[] values = (String[])parameters.get(param);if(values != null && values.length > 0){for (int j = 0; j < values.length; j++) {if(values[j] != null && !"".equals(values[j])){try {values[j] = URLDecoder.decode(values[j], "UTF-8");parameters.put(param, values[j]);} catch (UnsupportedEncodingException e1) {e1.printStackTrace();} }}}}}return invocation.invoke();}}


读书人网 >其他相关

热点推荐