String username = (String)session.getAttribute("isLog");

解决方案 »

  1.   

    这样不行,我是在class里面去页面的值,熟悉filter的朋友,给帮帮忙
      

  2.   

    在init方法中使用FilterConfig filterConfig参数
    filterConfig.getServletContext().getAttribute("isLog");
      

  3.   

    to chenyun200(Java初手) 那样不行,
    init方法是在服务器启动的时候就调用了,
    我要的是每个用户登陆后,然后用filer去验证他们是否登陆.
      

  4.   

    to bdsc() 不明白,能具体点吗
      

  5.   

    filter的doFilter里:YourClass yc = new YourClass();String username = (String) request.getSession(true).session.getAttribute("isLog");if(yc.check(username)) //<<=== 传个参数到你的类的验证方法里...chain.doFilter(req, resp);
      

  6.   

    to bdsc()
    我的方法如下:
    public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
                throws IOException ,ServletException{
         if(filterConfig==null)
        return;
       String username = (String) request.getSession(true).session.getAttribute("isLog");
       //System.out.println("getString  "+username);
       
       chain.doFilter(request,response);
     
    }
      

  7.   

    我把你的代码加进去就出错了
    E:\Tomcat\webapps\filter\WEB-INF\classes\FilterTest.java:17: cannot resolve symbol
    symbol  : method getSession (boolean)
    location: interface javax.servlet.ServletRequest
    String username = (String) request.getSession(true).session.getAttribute("isLog");
      

  8.   

    问题的关键在于我怎么把"isLog"的值取出来,你的这行不能取出来 String username = (String) request.getSession(true).session.getAttribute("isLog");
      

  9.   

    加上:
    HttpServletRequest request = (HttpServletRequest) req;
    //req 是web传给doFilter的为什么能安全转化的原理我就不讲了,有时间你可以看看书
      

  10.   

    very good !
    搞定,
    多谢了