问题1:
org.apache.catalina.connector.ResponseFacade cannot be cast to javax.servlet.http.HttpServletRequest
错误提示似乎挺明显的了,说一个类型不能强制转化为另一个类型。
待转型类型是:org.apache.catalina.connector.ResponseFacade
目标类型是:javax.servlet.http.HttpServletRequest
我想你应该看出来了,ResponseFacade -->HttpServletRequest肯定是不行的?
也就是说你是用的那个arg1肯定是一个response,你写错了而已。
改过来就好。也建议你把arg这种的参数名字写作res或者rep比较容易识别,并且可以提高代码可读性的变量名。
问题2:
关于过滤器实现地址的拦截,那么首先获得请求的地址,也就是通过request对象,它有好多个获得url的不同不同部分的方法。比如可以使用getServletPath()方法获得请求的路径,然后判断是否合法,不合法跳转到指定页面,合法那么继续chain.doFilter()。