日期:2014-05-17  浏览次数:20673 次

我SSh弄到一起,现在想设计一个FILter过滤器反而不行啦
Java code
public class GetCUIListen  implements Filter{
    private HttpServletRequest httpServletRequest;
    
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throws IOException, ServletException {
        // TODO Auto-generated method stub
        httpServletRequest=(HttpServletRequest)arg0;
        User user;
        if(httpServletRequest.getSession().getAttribute("currentUser")==null&&(user=getUser())!=null)
           httpServletRequest.getSession().setAttribute("currentUser",user );
        System.out.println("doFilter");
        arg2.doFilter(arg0, arg1);
        
    }

    private User getUser() {
        // TODO Auto-generated method stub
    
//        System.out.println(hibernateTemplate==null);  //我本来想spring注入进来的,可是不对
//        session.beginTransaction();
//        User user=(User) session.load(User.class, "wubuqilai@gmail.com");
//        session.getTransaction().commit();
//        session.close();
//        return user;
        return null;
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("init");
    }
   
    

}



功能就是从cookie中读取用户的email ,然后在session中通过数据库获取用户的全部信息,

本来要写一个listen 类,可是无法获取httpServletRequest类

还有数据库也获取不到啦,我从写一个session的话,没有hibernate xml文件,我都封装在web.xml里啦


------解决方案--------------------
filter你去看看声明顺序,如果被框架的先拦截去了,自然自定义的就悲剧了
------解决方案--------------------
自定义的Filter你在web.xml中配置的时候,写在struts2 Filter的前面,不然不起作用的。
------解决方案--------------------
自定义的要放在前面吧?
------解决方案--------------------
这个和顺序有关系吗 请问