用户登陆的信息保存在session中。
我在页面中用ajax直接调用service层,而不调用action
在service层我应该怎样会的session对象来取值呢?
[b]问题补充:[/b]
已解决!
在用dwr的时候传入request到service层。
service层定义为:
public void dwr方法名(HttpServletRequest request) {}
调用的时候无需给参数,默认会传入request
dwr方法名();
当作这个参数不存在 而且是必须的
你要是不用框架的话,可能得不到session。但是你用框架应该没问题。我用的是dwr框架,当你从前台页面调用后台方法时
例如:aa.getInfo(xx,xx).这个方法到后台时,它会自动包含request,response两对象参数过去。这样就可以取到session 了。
结论:请用ajax框架
你的页面用ajax总是要发送一个url请求吧,如果都没有url的话,那是没法取到
session中的值的
ajax是需要向后台发送请求的,也就是说你必须经过action层
肯定是先调了一个请求,然后要么是servlet要么就是action,在这个东西里面再去调用service咯
Struts2?
在任何一导,都可以使用如下语句取得struts2的session。
[code="java"]Map Session = ActionContext.getContext().getSession();[/code]
同样,如果是servlet的httpsession是
[code="java"]HttpSession session = ServletActionContext.getRequest().getSession();[/code]
让那个service层的类继承ActionsuPPort 类
[code="java"]
Map Session = ActionContext.getContext().getSession();
//或
HttpSession session = ServletActionContext.getRequest().getSession();
[/code]
配置一下,OK