实训——开发一个用户登录模块

实训——开发一个用户登录模块


基于本博客前面讲的JSP基础知识,本篇进行一个实训,开发一个简单的用户登录模块(没有用到数据库)。

一. 需求描述

首先要有一个登录页面,页面上面要填写用户名,密码,登录按钮,重置按钮。单击 “登录” 则将信息提交到一个JSP页面。该JSP页面进行判断(实际开发中会查找数据进行判断)输入的信息是否正确,如果正确,则跳转到 “登录成功” 页面,否则,跳转到 “登录失败” 页面。

二. 模块实现

文件功能
loginForm.jsp提交用户信息
loginConf.jsp对输入的信息进行判断,并且根据结果进行跳转
loginSuccess.jsp提示用户登录成功
loginFailure.jsp提示用户登录失败

三. 程序清单

loginForm.jsp

<%@ page language = "java" pageEncoding = "gb2312" %>
<html>
     <head>
          <title>
                登录页面
          </title>
     </head>
     <body>
             <form action = "loginConf.jsp" method = "post" >
              <table>
                     <tr>
                         <td>用户名</td>
                         <td><input type = "text" name = "username" /></td>
                     </tr>
                     <tr>
                          <td>密码</td>
                          <td><input typt = "text" name = "upassword" /></td>
                     </tr>
                     <tr>
                         <td> <input type = "submit" value = "登录" ></td>
                         <td> <input type = "reset" value = "重置" ></td>
                     </tr>
              </table>
      </form>
     </body>
 </html>

loginConf.jsp (这里使用固定的用户名:root 固定的密码:dmin)

<%@ page language = "java" pageEncoding = "gb2312" %>
<html>
     <head>
          <title>
                loginConf
         </title>
     </head>
     <body>
            <c:choose> <%-- 是<c:when><c:otherwise>的父标签 --%>
           <c:when test = "${param.username == 'root'}">
                <%-- 如果用户名合法,则再进行判断密码是否正确 --%>
                <c:if test = "${param.upassword == 'admin'}">
                    <jsp:forward page = "loginSuccess.jsp"></jsp:forward>
                </c:if>
                    <jsp:forward page = "loginFailure.jsp"></jsp:forward>
           </c:when>
           <c:otherwise>
               <jsp:forward page = "loginFailure.jsp"></jsp:forward>
           </c:otherwise>
        </c:choose>
     </body>
 </html>

loginSuccess.jsp

<%@ page language = "java" pageEncoding = "gb2312" %>
<html>
     <head>
          <title>
                 登录成功页面
          </title>
     </head>
     <body>
           <h1>登录成功</h1>
     </body>
  </html>

loginFailure.jsp

<%@ page language = "java" pageEncoding = "gb2312" %>
<html>
     <head>
          <title>
                登录失败
          </title>
     </head>
     <body>
           <h1>登录失败</h1>
     </body>
 </html>

在浏览器输入 http://localhost:8080/LoginModule/loginForm.jsp。如下图:
在这里插入图片描述
用户名输入“root”,密码输入“admin”,点击“登录”,则看到下图:
在这里插入图片描述
用户名输入“root”,密码随意输入,点击“登录”,则看到下图:
在这里插入图片描述

用户名随意输入,不管密码是什么,点击“登录”,则看到下图:
在这里插入图片描述

四. 扩展

增加需求:

1.当用户名为空时,点击“登录”,页面跳转回当前页面,并且提示“用户名为空”。
2.当密码为空时,点击“登录”,页面跳转回当前页面,并且提示“密码为空”。

4.1 需求分析

修改登录判断页loginConf.jsp,添加判断用户名密码是否为空,并且添加页面跳转。

4.2 程序清单

loginConf.jsp

<%@ page language = "java" pageEncoding = "gb2312" %>
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<html>
     <head>
          <title>
                loginConf
          </title>
     </head>
     <body>
             <%-- 判断用户名是否为空 --%>
        <c:if test = "${empty param.username}"> <%-- 如果用户名为空 --%>
            <% request.setAttribute("error", "用户名不能为空"); %>
            <jsp:forward page="loginForm.jsp"></jsp:forward><%-- 跳转登录页面 --%>
        </c:if>
        
        <%-- 判断密码是否为空 --%>
        <c:if test = "${empty param.upassword}"> <%-- 如果密码为空 --%>
            <% request.setAttribute("error", "密码不能为空"); %>
            <jsp:forward page="loginForm.jsp"></jsp:forward><%-- 跳转登录页面 --%>
        </c:if>

        <c:choose> <%-- 是<c:when><c:otherwise>的父标签 --%>
           <c:when test = "${param.username == 'root'}">
                <%-- 如果用户名合法,则再进行判断密码是否正确 --%>
                <c:if test = "${param.upassword == 'admin'}">
                    <jsp:forward page = "loginSuccess.jsp"></jsp:forward>
                </c:if>
                    <jsp:forward page = "loginFailure.jsp"></jsp:forward>
           </c:when>
           <c:otherwise>
               <jsp:forward page = "loginFailure.jsp"></jsp:forward>
           </c:otherwise>
        </c:choose>
        
     </body>
 </html>

loginForm.jsp

<%@ page language = "java" pageEncoding = "gb2312" %>
<html>
     <head>
           <title>
                  loginForm
          </title>
     </head>
     <body>
              <form action = "loginConf.jsp" method = "post" >
              <table>
                     <tr>
                         <%-- colspan属性是表格的列合并,数字代表有几列合并,font标签是设置字体 --%>
                          <td colspan = "2"><font color = "red">${requestScope.error}</font> </td>
                     </tr>
                     <tr>
                         <td>用户名</td>
                         <td><input type = "text" name = "username"/></td>
                     </tr>
                     <tr>
                          <td>密码</td>
                          <td><input type = "password" name = "upassword"/></td>
                     </tr>
                     <tr>
                         <td> <input type = "submit" value = "登录" ></td>
                         <td> <input type = "reset" value = "重置" ></td>
                     </tr>
              </table>
      </form>
     </body>
 </html>

在浏览器输入 http://localhost:8080/LoginModule/loginForm.jsp。如下图:
在这里插入图片描述
不填用户名信息,密码随便填,点击“登录”,如下图:
在这里插入图片描述
不填密码信息,用户名随便填,点击“登录”,如下图:
在这里插入图片描述

欢迎小伙伴来评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值