JAVA过滤器ServletRequest如何转换成HttpServletRequest

2025-04-08 10:28:42
推荐回答(1个)
回答1:

问题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()。