当遇到一个很大系统,有好多链接菜单,都是从数据库中查出来,页面右键又被屏蔽了的时候,可以使用以下方法快速跟踪当前点击的页面
写一个过滤器进行拦截,在doFilter中加入如下方法
StringBuffer buffer = new StringBuffer(url + "?");
Map map = ((HttpServletRequest) request).getParameterMap();
Enumeration enums=((HttpServletRequest) request).getParameterNames();
while(enums.hasMoreElements()){
String paramName=(String)enums.nextElement();
String[] values=request.getParameterValues(paramName);
for(int i=0;i<values.length;i++){
// ByteArrayInputStream is = new ByteArrayInputStream(values[i].getBytes());
// InputStreamReader isr = new InputStreamReader(is);
// String encoding = isr.getEncoding();
// System.out.println("当前的字符" + values[i] + "集编码为: " + encoding);
// StringBufferInputStream is = new StringBufferInputStream(values[i].toString());
// InputStreamReader isr = new InputStreamReader(is);
// String encoding = isr.getEncoding();
// System.out.println("当前的字符" + values[i] + "集编码为: " + encoding + (Charset.forName("GBK").newEncoder().canEncode(values[i])));
// buffer.append(paramName+"="+ values[i] + "&");
if(!Charset.forName("GBK").newEncoder().canEncode(values[i])){
buffer.append(paramName+"="+ new String(values[i].toString().getBytes("ISO-8859-1"),"GBK") + "&");
}else{
buffer.append(paramName+"="+ values[i].toString() + "&");
}
}
}