webwork:打开网站任何一页前先查询变量然后设置到session里 webwork做的网站,现在需要无论从网站任何一个页面进入网站,都能先从后台查询变量x然后设置变量x到session里,然后再在这个页面里把变量x取出来。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先在我的网站数据库中有个库存变量storage,int类型。设计网站时只是在打开首页index.jsp的时候先执行了后台index.action在里面查询了storage,然后设置到session中,在index.jsp页面中取到storage。但是如果首先打开其他页面由于没有先执行后台index.action,所以在这个页面取不到storage。我想在过滤器里打开每个页面时执行查询操作设置storage到session中,但是由于webwork中HttpSession httpSession = ServletActionContext.getRequest().getSession();但是由于不是在webwork的action中,所以ServletActionContext.getRequest()取到的request为空会报异常,所以该咋办? 先在页面里读取session中的x,如果有值,则没问题,否则让他跳转到一个固定页面,类似登录,在这个页面里从后台查询变量x就行了 你建个拦截器啊,在拦截器里面查询出这个变量,然后放到session。。 过滤器里可以。 public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { try { filterChain.doFilter(request, response); } finally { try { //查询库存变量 HttpServletRequest req= (HttpServletRequest)request; HttpSession httpsession=req.getSession(); Object ob=httpsession.getAttribute("storage"); if(ob==null) { Session s= HibernateUtil.currentSession(); Storage st = (Storage)s.load(Storage.class, new Long(1)); storage = st.getStorage(); httpsession.setAttribute("storage", storage); } else { storage = ob.toString(); } //查询库存变量 System.out.println("****************"+storage); HibernateUtil.closeSession(); } catch (Exception e) { System.out.println(e); } } } lucene复杂搜索 我用SQL Profiler监控DB操作为什么不能看到任何结果? 有办法对native代码中运行错误造成的java vm崩溃进行截获处理吗?谢谢... spring mvc 控制层接收页面两个实体参数的问题 实时数据分页 Spring+hibernate出现的问题????? 请高手帮忙,resin2.0.9中怎样配置servlet啊?在线等! 怎样配置eclipse+tomcat+lomboz调试JSP程序? ■■tomcat5.0跟4.0的servlet机制是否不同????■■ 高分求解~~ jsp传参数问题 j2ee权限控制
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException
{
try
{
filterChain.doFilter(request, response);
}
finally
{
try
{
//查询库存变量
HttpServletRequest req= (HttpServletRequest)request;
HttpSession httpsession=req.getSession();
Object ob=httpsession.getAttribute("storage");
if(ob==null)
{
Session s= HibernateUtil.currentSession();
Storage st = (Storage)s.load(Storage.class, new Long(1));
storage = st.getStorage();
httpsession.setAttribute("storage", storage);
}
else
{
storage = ob.toString();
}
//查询库存变量
System.out.println("****************"+storage);
HibernateUtil.closeSession();
}
catch (Exception e)
{
System.out.println(e);
}
}
}