由于JAVA和JSP是区分大小写,我想请问如何对URL进行过滤。比如正常的URL是:http://www.java-cn.com/bbs-jsp/index.jsp?forum=jsp,我想以下这样的地址也能访问:
http://www.java-cn.com/bbs-jsp/indEx.JSP?forum=jsp
http://www.java-cn.com/bbs-jsp/index.jsp?fOrum=jSP
http://www.java-cn.com/bbs-jSp/index.jsp?forum=jsp
http://www.java-cn.com/bbS-jsp/index.jsp?forum=jsp
http://www.JAVA-cn.com/bbs-jsp/Index.jsp?Forum=jsp等等这些,意思就是我在浏览这个地址的时候,使其大小写都能浏览,而不报错。Thanks!!
http://www.java-cn.com/bbs-jsp/indEx.JSP?forum=jsp
http://www.java-cn.com/bbs-jsp/index.jsp?fOrum=jSP
http://www.java-cn.com/bbs-jSp/index.jsp?forum=jsp
http://www.java-cn.com/bbS-jsp/index.jsp?forum=jsp
http://www.JAVA-cn.com/bbs-jsp/Index.jsp?Forum=jsp等等这些,意思就是我在浏览这个地址的时候,使其大小写都能浏览,而不报错。Thanks!!
能力有限,不会!
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 javax.servlet.http.HttpServletRequestWrapper;public class CaseFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void destroy() {
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
final HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper(httpRequest) {
public String getServletPath() {
return super.getServletPath().toLowerCase();
}
};
chain.doFilter(wrapper, response);
}
}web.xml
在<servlet>之前<filter>
<filter-name>case</filter-name>
<filter-class>xxx.CaseFilter</filter-class>
</filter><filter-mapping>
<filter-name>case</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我还没试,不过先谢过了,如愿意的话,请留QQ或者MSN。
也可以加我,
QQ:963415
MSN:[email protected]