- Step1:自定义封装request
- package com.tsou.comm.servlet;
- import java.util.Enumeration;
- import java.util.Map;
- import java.util.Vector;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletRequestWrapper;
- /**
- *
- * <p class="detail">
- * 功能:封装的请求处理特殊字符
- * </p>
- * @ClassName: TsRequest
- * @version V1.0
- * @author wangsheng
- */
- public class TsRequest extends HttpServletRequestWrapper {
- private Map params;
- public TsRequest(HttpServletRequest request, Map newParams) {
- super(request);
- this.params = newParams;
- }
- public Map getParameterMap() {
- return params ;
- }
- public Enumeration getParameterNames() {
- Vector l = new Vector( params.keySet());
- return l.elements();
- }
- public String[] getParameterValues(String name) {
- Object v = params.get(name);
- if (v == null ) {
- return null ;
- } else if (v instanceof String[]) {
- String[] value = (String[]) v;
- for (int i = 0; i < value.length; i++) {
- value[i] = value[i].replaceAll( "<", "<" );
- value[i] = value[i].replaceAll( ">", ">" );
- }
- return (String[]) value;
- } else if (v instanceof String) {
- String value = (String) v;
- value = value.replaceAll( "<", "<" );
- value = value.replaceAll( ">", ">" );
- return new String[] { (String) value };
- } else {
- return new String[] { v.toString() };
- }
- }
- public String getParameter(String name) {
- Object v = params.get(name);
- if (v == null ) {
- return null ;
- } else if (v instanceof String[]) {
- String[] strArr = (String[]) v;
- if (strArr.length > 0) {
- String value = strArr[0];
- value = value.replaceAll( "<", "<" );
- value = value.replaceAll( "<", ">" );
- return value;
- } else {
- return null ;
- }
- } else if (v instanceof String) {
- String value = (String) v;
- value = value.replaceAll( "<", "<" );
- value = value.replaceAll( ">", ">" );
- return (String) value;
- } else {
- return v.toString();
- }
- }
- }
- Step2:设置过滤器
- package com.tsou.comm.filter;
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import com.tsou.comm.servlet.TsRequest;
- /**
- *
- * <p class="detail">
- * 功能:特殊字符过滤器
- * </p>
- * @ClassName: CharacterFilter
- * @version V1.0
- * @date 2014年9月25日
- * @author wangsheng
- */
- public class CharacterFilter implements Filter{
- @Override
- public void destroy() {
- }
- @Override
- public void doFilter(ServletRequest req, ServletResponse res,
- FilterChain chain) throws IOException, ServletException {
- HttpServletRequest request = (HttpServletRequest)req;
- TsRequest wrapRequest= new TsRequest(request,request.getParameterMap());
- chain.doFilter(wrapRequest, res);
- }
- @Override
- public void init(FilterConfig arg0) throws ServletException {
- }
- }
- Step3:拦截URL
- <filter>
- <filter-name> characterFilter</filter-name >
- <filter-class> com.tsou.comm.filter.CharacterFilter</filter-class >
- </filter>
- <filter-mapping>
- <filter-name> characterFilter</filter-name >
- <url-pattern> /*</ url-pattern>
- </filter-mapping>
- //该片段来自于http://www.codesnippet.cn/detail/2812201514328.html
来源: http://www.codesnippet.cn/detail/2812201514328.html