JSP技术:登录验证及 session 对象使用

问题引入:

       在登录页面(login.jsp)中输入用户名及口令并点击“登录”按钮,将输入的用户名和口令提交到 check.jsp 页面处理验证,若用户名和口令正确则自动跳转到管理页面(admin.jsp),若验证失败则跳转回登录页面(login.jsp)并显示错误信息。若用户在地址栏中直接输入管理页面的 URL 地址进行访问,管理页面要验证用户是否登录,若登录则显示管理页面,否则跳转到登录页面。

                                                                                      图  1  登陆验证流程图

问题解决:

login.jsp核心代码:

<body>
<h2 align="center">系统登录</h2>
<%//显示登录错误信息
Object errMsg = session.getAttribute("errMsg");
if(errMsg != null){%>
   <div style="color:red;text-align:center"><%=errMsg%></div>
<%session.removeAttribute("errMsg");}%>
<form method="post" action="check.jsp">
   <p align="center">用户名:<input type="text" name="uName"></p>
   <p align="center">口&nbsp;&nbsp;令:<input type="password" name="uPassword"></p>
   <p align="center"><input type="submit" name="submit" value="登录"></p>
   </form>
</body>

check.jsp核心代码:

<body>
  <%//确保获取的中文不会乱码
  request.setCharacterEncoding("UTF-8");
  //获取客户端提交的用户名
  String uName = request.getParameter("uName");
  //获取客户端提交的口令
  String uPassword = request.getParameter("uPassword");
  if("张三".equals(uName) && "123456".equals(uPassword)){
  //将用户名保存到会话中,后面页面通过检查此对象的存在与否判断用户是否登录,并将用户名显示到页面
  session.setAttribute("uName",uName);
  //重定向到被保护页面
  response.sendRedirect("admin.jsp");
  }else{
  //设置错误信息,用于登录页面提示
  session.setAttribute("errMsg","用户名或口令不正确...");
  //重定向到登录页面
  response.sendRedirect("login.jsp");
  }%>
</body>

admin.jsp核心代码:

<body>
   <%Object uName = session.getAttribute("uName");
   //判断用户是否登录
   if(uName == null){
   session.setAttribute("errMsg","你还没登录,请登录...");
   //重定向到登录页面
   response.sendRedirect("login.jsp");
   }%>
   <h1>嗨!<%=uName%>,欢迎来到你的月亮我的心!!</h1>
</body>

结果验证:

在浏览器输入:登陆http://localhost:8080/Demo/login.jsp,显示如下页面:

输入由于设置登陆用户为“张三”,密码为“123456”,当输入“李四”“123456”,显示输入错误:

登陆成功,显示如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值