做一个简单的用户登陆,如果用户输入用户名和密码正确,则提示登陆成功信息,否则返回登陆界面

解决方案 »

  1.   

    登陆后在session中保存一个登陆成功的标记
    在过滤器的doFilter方法中访问该标记
    如果未登陆则将请求转发至登陆界面
    过滤器对除登陆界面外的所有页面过滤
      

  2.   

    过滤器可以过滤不要的或需要转化东西(废话是吧)。
    比如编码转换,用户的权限控制 。过滤器属于前端控制器。做个比喻吧: 比如一个家的门有什么用呢?不要门也可以啊,陌生人进来,屋里的人判断一下是否认识,不认识就赶他走。这样的话家里的人会很忙,而且很不安全。
    有一个门的话,我们可以通过对讲机询问这个人是否认识才让他进来。
    具体可以看看<设计模式>gof的书。
      

  3.   

    哎 就比如你有一个文件夹person 就只有登陆的人才有权限访问  你如果不用过滤器就要每个页面去判断是否登陆了 用过滤器就会在访问每个jsp之前去判断是否登陆 省了很多事情
    import java.io.IOException;
    import javax.servlet.http.*;
    import javax.servlet.*; public class LoginCheck implements Filter { protected FilterConfig filterConfig = null; public void destroy() { this.filterConfig = null; } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    if(filterConfig==null)
    return;
    HttpServletRequest hreq=(HttpServletRequest)req;
    HttpSession session=hreq.getSession();
    if((session.getAttribute("username")==null)||(session.getAttribute("username").equals(""))){
    RequestDispatcher requestDis=req.getRequestDispatcher("login.jsp");
    requestDis.forward(req,res);
    }
    else{
    chain.doFilter(req,res);
    }
    } public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig = filterConfig;
    }
    }
      

  4.   

    别忘啦,
     <filter>
            <filter-name>cacheFilter</filter-name>
            <filter-class>你的class路径</filter-class>
        </filter>
        <!--filter-mapping>
            <filter-name>cacheFilter</filter-name>
            <url-pattern>*/url-pattern>
        </filter-mapping-->