我是利用struts2.1和Hibernate3做的一个项目,里面有一个过滤器,本想如果用户没有登录,则当用户访问其他的某个页面时候被过滤器拦截又跳转到登录页面。
Action中是这样 利用ActionContext.getContext().getSession().put("user",getUsername()) 来保存用户session的,可是在过滤器中利用 if(ActionContext.getContext().getSession().get("user") != null)来检测是否保存有session 程序就会提示说空指针异常(编译没问题)。在过滤器中可以利用request.getSession()来获取HttpSession,可是在action中利不能用request.getSession来保存用户信息。
请问该怎么做哩?请给个思路。
Action中是这样 利用ActionContext.getContext().getSession().put("user",getUsername()) 来保存用户session的,可是在过滤器中利用 if(ActionContext.getContext().getSession().get("user") != null)来检测是否保存有session 程序就会提示说空指针异常(编译没问题)。在过滤器中可以利用request.getSession()来获取HttpSession,可是在action中利不能用request.getSession来保存用户信息。
请问该怎么做哩?请给个思路。
解决方案 »
- 在myeclipse中java project如何部署进入tomcat
- 如何判断ajax操作执行完成
- 最高分 在线求SPRING + hibernate + oracle9i CLOB的问题
- 【高分急求】如何用js往一个已经做好的表格里面写值啊
- JSP程序和普通java程序的区别?
- 如何让TOMCAT自动加载WEB服务?
- 关于Servlet的问题!!!
- apache + tomcat 后就不能運行 php 請大家回答指教!!
- 我是新手,救救我吧:请教Tomcat4.0的问题
- 为何用taxbean.getProduct()可以,用<jsp:getProperty name="taxbean" property="Product" /> 不行
- 回家请假Liferay怎样集成现有的javaweb应用?
- 如何实现以下接口
ActionContext.getContext().getSession().put("user",getUsername())
其实它是一个HashMap,在filter中,ActionContext.getContext()能不返回一个null吗?
filter根本无法获取action的请求上下文信息呀!
对一个null对象调用它的方法那么程序肯定给你一个java.lang.NullPointerException呀!
ActionContext.getContext()只有在action中获取才不会是null,所以你在action中要用
request.getSession,然后在filter中也是一样用request.getSession()来获取session。
ActionContext.getContext().getSession().put("user",getUsername()) 用它来保存
登录用户是不合理的。因为它不是HttpSession
import org.apache.struts2.ServletActionContext;
@Override
public String execute() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
......
}
直接 request.getSession() 能得到 HttpSession .