session会话管理,与过滤器使用,访问控制

1 用户登录,是否注册用户,在登录处理页面进行用户验证,创建session保存用户名和密码

2否,进入用户注册页面

3是,系统保存该用户的登录信息

4进入要访问的页面

5用户直接访问某个页面,

6系统是否保存了该用户的登录信息,从session中提取用户信息,如果用户信息存在,则可以进行操作,

7否,进入用户登录页面

8是,显示该页面内容。

登录处理页面


        if (dao.hasUser(name)) {

            if (dao.isLegalUser(name, password)) {
                request.setAttribute("name", name);
                HttpSession session = request.getSession(true);
                session.setAttribute("name", name);
                //设置seseion过期时间,默认为秒
                session.setMaxInactiveInterval(10*60);
                
                System.out.println("sessionid:"+session.getId());
                request.getRequestDispatcher("/jsp/bolg2.jsp").forward(request, response);
            } else {
                request.setAttribute("msg", "密码错误,请重新输入!");
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }

        } else {
            // 用户不存在
            response.sendRedirect("index.jsp");
        }
    }

过滤器

//sesssion对象提取登录信息,用户名

String name=(String) req.getSession().getAttribute("name");
       // if(!"/isud/src/main/webapp/login.jsp".equals(targetURL)){
            //判断当前页面是否是的登陆页面,如果是就不做session的判断,防止死循环
            if(name==null){
                //如果session为空表示用户没有登陆就重定向到login.jsp页面


                System.out.println("没有登陆,请先登陆!");  
                System.out.println("request.getContextPath()=" + req.getContextPath());  
                res.sendRedirect(req.getContextPath()+"/login.jsp");
            }else {
                //继续向下执行
                chain.doFilter(request, response);
            }

转载于:https://www.cnblogs.com/TangGe520/p/8728693.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值