//重写类
public class ParameterRequestWrapper extendsHttpServletRequestWrappe
r {
private Mapparams;
publicParameterRequestWrapper(HttpServletRequest request,
MapnewParams) {
super(request);
this.params = newParams;
// RequestDispatcher.forward parameter
// renewParameterMap(request);
}
@Override
public StringgetParameter(String name) {
String result = "";
Object v = params.get(name);
if (v == null) {
result =null;
} else if (v instanceof String[]) {
String[]strArr = (String[]) v;
if(strArr.length > 0) {
result =
strArr[0];
} else{
result = null;
}
} else if (v instanceof String) {
result =(String) v;
} else {
result =
v.toString();
}
return result;
}
@Override
public MapgetParameterMap() {
return params;
}
@Override
public EnumerationgetParameterNames() {
return newVector(params.keySet()).elements();
}
@Override
public String[]getParameterValues(String name) {
String[] result = null;
Object v = params.get(name);
if (v == null) {
result =
null;
} else if (v instanceof String[]) {
result =
(String[]) v;
} else if (v instanceof String) {
result =
new String[] { (String) v };
} else {
result =
new String[] { v.toString() };
}
return result;
}
private voidrenewParameterMap(HttpServletRequest req) {
String queryString = req.getQueryString();
if (queryString != null &&queryString.trim().length() > 0) {
String[]params = queryString.split("&");
for (int i= 0; i < params.length; i++) {
int splitIndex =params[i].indexOf("=");
if (splitIndex == -1) {
continue;
}
String key =params[i].substring(0, splitIndex);
if(!this.params.containsKey(key)) {
if (splitIndex < params[i].length()) {
Stringvalue = params[i].substring(splitIndex + 1);
this.params.put(key, new String[] { value });
}
}
}
}
}
}
//filter 过滤器
public class RequestOfAllFilter implements Filter {
public void destroy(){
}
public voiddoFilter(ServletRequest req, ServletResponse resp, FilterChainchain) throws ServletException, IOException {
HttpServletResponse response =(HttpServletResponse)resp;
HttpServletRequest request=(HttpServletRequest)req;
Enumeration parms=
request.getParameterNames();
HashMap map = new HashMap();
while (parms.hasMoreElements()){
StringparameterName = (String)parms.nextElement();//参数名称
StringparameterValue= request.getParameter(parameterName);
parameterValue = parameterValue.replace("<","<");
parameterValue = parameterValue.replace(">",">");
map.put(parameterName,new String[]{parameterValue});
}
request = newParameterRequestWrapper(request,map);
chain.doFilter(request, response);
}
public voidinit(FilterConfig config) throws ServletException {
System.out.println("================成功加载Filter=================");
}
}