我现在要做一个程序! 在后台普通的java类里获取session的值! 要求不经过action传值!也就是说我action给session赋值之后就不指定获取的方法了! 那个java类想要这个session就能直接获取到! 用struts2好像有个ServletActionContext能直接获取到,但是现在我用的是struts1该怎么获取呢? 我考虑过在action中把值赋给一个对象! 但是这样的话只能存放一个值! 不能达到session的效果了! 就比如说我用来登录! 那就只可以有一个用户存在!我换个账户登录会把前面那个登录信息冲掉!请问还有啥其它的解决方法么? 期待...
问题是我要监测当前是哪个用户登录。用监听器我也试过! 不知道是我用得不对还是怎么的!反正达不到我的需求!现在在用threadlocal试!貌似这个应该可以实现我的需求!但是我现在遇到了一个判断是否是当前用户使用这个线程的问题。正在解决中 希望和大家一起探讨探讨
这几天项目忙~ 都没时间来看这个了...具体的业务是这样的: 我有一个调度的功能!这个调度模块是启动服务就启动的! 一启动不用任何操作就会扫描一些其它的业务模块! 现在我需要用户登录之后就监测到! 从而将一些扫描的结果进行判断是否是该用户并将符合判断条件的信息发送给该用户! 而这个事情只要该用户登录即可!不需要做任何操作! 也就是说不会经过ACTION来传递用户的Session数据! 而这个实现就和struts2里面的ServletActionContext差不多! 但是在struts1.x里面没有这个东西!
session 是和客户端有关联的,你打开一个客户端就创建一个session.我不知道你只可以有一个用户存在时什么意思,如果你打开两个浏览器登录就会有2个用户存在(struts2中不能配置成单例),struts1里面不是有request.getSession
我想你还没明白我的意思!你所说的request.getSession那是必须通过request请求才能获得数据的!而我要做的是不通过请求!即不会经过action来获取用户登录数据。而在struts1里不通过请求是获取不到request的信息的。
public static HttpServletRequest getRequest() {
return (HttpServletRequest) local.get();
}
public static HttpSession getSession() {
return (HttpSession) getRequest().getSession();
} public static HttpSession getSession(boolean create) {
return (HttpSession) getRequest().getSession(create);
} public void init(FilterConfig config) throws ServletException {
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
ServletRequest srequest = request;
local.set((HttpServletRequest) request);
chain.doFilter(srequest, response);
} public void destroy() {
System.out.println("filter destroy");
this.config = null; }}