我使用Struts2框架,我有一个自定义拦截器。拦截器堆栈是defaultStack
+我在底部的自定义拦截器(在操作之前)。在拦截方法中,我使用以下代码:
final ActionContext context = invocation.getInvocationContext ();
HttpServletRequest request = (HttpServletRequest) context.get(StrutsStatics.HTTP_REQUEST);
HttpSession session = request.getSession(true);
session.doSomething();
我想知道为什么使用的方法不会抛出任何异常,为什么没有必要检查if(session != null)
。这些方法不可能无法获得实例化的会话吗?为什么? servlet-config拦截器与此有什么关系吗?如果会话 可以null
,那会发生什么样的情况呢?
答案 0 :(得分:2)
会话很少为空,因为:
getSession(true)
,which creates a session if one doesn't exist。如果你在一个不会自动创建会话 的环境中运行,你可以添加一个"createSession"
拦截器。 "servletConfig"
没有直接参与。