• Java学习11.03(Javaweb登录)


    用户登录功能及效果

    要完成登录功能,需要创建以下几个界面或文件:登录界面、处理文件、登录成功的界面和登录失败的界面。
    创建登录界面
    <%@ page contentType="text/html;charset=gb2312"%> 
    <script language="JavaScript"> 
     function isValidate(form) 
     { 
     // 得到用户输入的信息
     userid = form.userid.value; 
     userpass = form.userpass.value; 
     // 判断用户名长度
     if(!minLength(userid,6)) 
     { 
     alert("用户名长度小于 6 位!"); 
     form.userid.focus(); 
     return false; 
     } 
     if(!maxLength(userid,8)) 
     { 
     alert("用户名长度大于 8 位!"); 
     form.userid.focus(); 
     return false; 
     } 
     // 判断口令长度
     if(!minLength(userpass,6)) 
     { 
     alert("口令长度小于 6 位!"); 
     form.userpass.focus(); 
     return false; 
     } 
     if(!maxLength(userpass,8)) 
     { 
     alert("口令长度大于 8 位!");
    form.userpass.focus(); 
     return false; 
     } 
     // 判断用户名和口令是否相同
     if(userid==userpass) 
     { 
     alert("用户名和口令不能相同!"); 
     form.userpass.focus(); 
     return false; 
     } 
     return true; 
     } 
     // 验证是否满足最小长度
     function minLength(str,length) 
     { 
     if(str.length>=length) 
     return true; 
     else 
     return false; 
     } 
     // 判断是否满足最大长度
     function maxLength(str,length) 
     { 
     if(str.length<=length) 
     return true; 
     else 
     return false; 
     } 
    </script> 
    <html> 
     <head> 
     <title>用户登录</title> 
     </head> 
     <body> 
     <h2>用户登录</h2> 
     <form name="form1" action="login_process.jsp" method="post" 
     onsubmit="return isValidate(form1)">
    用户名:<input type="text" name="userid"> <br> 
     口令:<input type="password" name="userpass"><br> 
     <input type="reset" value="重置"> 
     <input type="submit" value="提交"><br> 
     </form> 
     </body> 
    </html>

     

    创建处理文件

    创建处理文件的过程分四步完成:
    第一步,判断用户的信息是否正确,分别输出“登录成功”和“登录失败”字样。
    第二步,在此基础上把登录后的用户信息写入 session 中,以便以后使用。
    第三步,登录成功之后跳转到登录成功的界面,登录失败后跳转到登录失败的界面,
    使用<jsp:forward>标签完成。
    第四步,采用<jsp:include>标签完成第三步任务。
     

    判断用户的信息是否正确

    对用户的信息进行判断,主要使用标准标签库中的<c:if>标签完成,代码如下:
     
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <c:if test="${param.username=="zhangsan" && param.userpass=="wangwu"}">
    登录成功!
    </c:if>
    <c:if test="${param.username!="zhangsan" || param.userpass!="wangwu"}">
    登录失败!
    </c:if>
    代码中用到两个<c:if>标签,每个标签的 test 条件都是先进行关系运算(判断是否相等),然后再进行逻辑运算。另外,在比较的时候使用了转义字符,即使用“"”替换“"”。
    运行这个代码,如果用户名输入“zhangsan”,口令输入“wangwu”,则显示“登录成功!”;否则,显示“登录失败!”。

    保存用户信息

    在JSP 中提供了几种保存信息的方式:
    可以保存在当前页面,但是只能在当前页面使用;可以保存在请求对象(每次请求都会创建这样一个对象)中,但是只能在这次请求中使用,请求对象是在服务器
    接收到请求后创建的,对客户端进行响应之后就没有了;可以保存在会话对象中,每个用户对应一个会话对象,当用户访问第一个网页的时候,服务器为这个用
    户创建一个会话对象,在用户的访问过程中一直有效,当用户关闭网页的时候,会话对象就删除了;还可以保存在应用对象中,这个对象是 Web 应用的所有用
    户共享的。
  • 相关阅读:
    反射的高级运用:通过一个实体类,以及查询到数据库的DataReader,进行绑定
    windows平台下 反向代理 squid
    log4net 高级运用之:在页面级捕获可预见的异常,在全局应用程序类Global.asax中捕获未知的异常(更新log4net的样式和配置)
    IEnumerable的谨慎使用和IQueryable 的延迟执行
    ReSharper使用
    包含别人的dll,然后我们用类库再次封装成dll的时候的注意事项;源文件与模块生成时的文件不同;创建调试信息文件 ··PDB时发生意外的错误,进程无法访问文件,因为另一个程序正在使用此文件
    log4net使用(保存日志分别 到文本文件,smtp发送邮件,mssql数据库,mysql数据库)
    VC++中,CTime 与CString转换
    How to write a CV ?
    [转]VC解析XML使用CMarkup类解析XML
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/14204404.html
Copyright © 2020-2023  润新知