Java 添加筛选器以检查会话是否有效
我正在添加一个过滤器来检查会话是否有效 添加了以下内容,但得到了错误Java 添加筛选器以检查会话是否有效,java,spring,servlets,Java,Spring,Servlets,我正在添加一个过滤器来检查会话是否有效 添加了以下内容,但得到了错误 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException { if (request.getRequestedSessionId() != null &&
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws java.io.IOException, ServletException {
if (request.getRequestedSessionId() != null
&& !request.isRequestedSessionIdValid()) {
错误:-
The method getRequestedSessionId() is undefined for the type ServletRequest
方法
getRequestedSessionId
(和isRequestedSessionIdValid
)在上声明。您正在尝试对类型为的引用调用该方法。如果您知道被引用的对象实际上是一个HttpServletRequest
,请强制转换它以调用该方法
HttpServletRequest httpRequest = (HttpServletRequest) request;
if (httpRequest.getRequestedSessionId() != null && !httpRequest.isRequestedSessionIdValid()) {...
谢谢,成功了。有一个问题-当它被强制转换时,我确信它会将ServletRequest的所有属性复制到HttpServletRequest。如果ServletRequest中有更多属性,或者ServletRequest中有更多属性,会发生什么情况?@user1050619 Casting对对象没有任何作用。强制转换应用于值,此处的值是对对象的引用。对象是完全相同的。您只是以不同的方式看待它,将类型
HttpServletRequest
替换为ServletRequest
。