首页 > 编程 > JSP > 正文

技巧:JSP登录验证功能的实现

2024-09-05 00:19:48
字体:
来源:转载
供稿:网友

静态的登录界面的设计login.htm,代码如下:

<html>
<head>
    <title>系统登录</title>
    <style type="text/css">...
<!--
.style1 {...}{
    font-size: 18px;
    font-weight: bold;
}
.style2 {...}{font-size: 24px}
.style5 {...}{font-size: 16px}
-->
    </style>
</head>
<body bgcolor="papayawhip"  width="300" height="300">
    <center>
    <table border="2" bordercolor="black" bgcolor="lightgreen">
    <tbody>
    <tr>
    <td><div align="center" class="style1 style2">系 统 登 录
      </div></td>
    </tr>
    <form action="login.jsp" method="post">
        <tr>
        <td height="28"><span class="style5">用户名</span>            <input type="text" name="uid" maxlength="20" ></td></tr><br>
        <tr>
        <td><span class="style5">密&nbsp;&nbsp;码</span>        <input type="password" name="upwd" maxlength="20" ></td></tr><br>
        <center>
        <tr><td><div align="center">
              <input type="submit" value="登录" >&nbsp;&nbsp;
              <input type="reset" value="取消">
          </div></td></tr>
        </center>
    </form>
   
    </tbody>
    </table>
    </center>
</body>
</html>

  将登录用户输入的信息提交到login.jsp页面机型处理,这里为了方便,不执行数据库的访问操作,直接使用sky2098作为登录用户名和密码,但在实际中是要从数据库中读取的,该jsp页面代码实现如下:

<%[email protected] page contenttype="text/html;charset=gb2312"%>
<%...
    if(request.getparameter("uid").equals("sky2098")&&request.getparameter("upwd").equals("sky2098")){
        session.setattribute("login","ok");
        session.setmaxinactiveinterval(-1);
%>
<jsp:forward page="main.jsp"/>
<%...
    }else{
            out.println("用户名或密码输入错误!");
}
%>

  如果登录成功,则设定login的值为ok,提交到下一步验证页面,则进入main.jsp页面,否则,如果输入的用户名和密码不合法就打印错误信息,main.jsp页面代码如下:

<%[email protected] page contenttype="text/html;charset=gb2312"%>
<%[email protected] include file="checkvalid.jsp" %>
<html>
    <head>
        <title>~welcome to my homepage~</title>
    </head>
    <body>
    <center>
    ~welcome to my homepage~
    </center>
    </body>
</html>

  这个页面使用<% @ include file="checkvalid.jsp" %>包含了一个jsp页面checkvalid.jsp为了验证输入信息的合法性:

<%...
    if(session.getattribute("login")==null||!session.getattribute("login").equals("ok")){
        response.sendredirect("login.htm");
}
%>

  如果输入信息有误,则回到登录页面,重新输入登录信息。

  测试登录功能。

  启动tomcat服务器,在ie地址栏中键入url为:

http://localhost:8080/sky2098/login-advanced/login.htm

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表