美文网首页
jsp简单的不要不要的(三)

jsp简单的不要不要的(三)

作者: itczt | 来源:发表于2019-05-28 20:32 被阅读0次

    一、 项目概述

    本项目主要实现了以下功能:

    1. 用户登录验证
    2. 账号密码信息的保存
    3. 登录成功后用户信息的保存显示
    4. 账号或密码错误页面的跳转

    应用技术:

    Jsp  session  cookie  html   
    

    项目特点:

    界面清晰简洁,可实现用户登录注销,账号密码信息保存。
    

    实现截图:





    二、项目模块说明

    1. login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>登录</title>
    <%
    //初始化
            String username = ""; //定义用户名变量
            String password = ""; //定义密码变量
    //获取所有的cookie值
            Cookie[] cookies = request.getCookies(); //定义cookie数组
            for (int i = 0; i < cookies.length; i++){ 
    //将用户名和密码与cookie中所有的值进行比较,如果cookie中有用户信息则分别将用户名和密码赋值
                if ("username".equals(cookies[i].getName())){ 
                    username = cookies[i].getValue();} 
                if ("password".equals(cookies[i].getName())){
                    password = cookies[i].getValue();  } 
            }
    %>
    <style type="text/css">
    .longinBox{margin-left:500px;margin-top:200px;}
    .sub_button{width:100px;height="100%";}
    </style>
    </head>
    <body bgcolor="#d0d0d0">
        <div class="longinBox">
            <form action="login_deal.jsp">
            <table border="0" >
            <tr>
            <td>账号</td><td><input type="text" class="txt_input txt_input2" name="username" value=<%=username%>></td>
            </tr>
            <tr>
            <td>密码</td><td><input type="password" class="txt_input"  name="password" value=<%=password%>></td>
            </tr>
            <tr><td></td>
            <td>
            <input type="checkbox" id="save_me" name="flag" value="y"><label for="checkbox">记住密码</label>
            </td>
            </tr>
            <tr><td></td> 
            <td>
            <input type="submit" class="sub_button" name="button" id="button" value="登录" style="opacity: 0.7;">
            <a id="iforget" href="del.jsp">删除cookies</a>
            </td>
            </tr><div></div>
            </table>
        </div>
        </form>
    </body>
    </html>
    

    2. login_deal.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>登录判断</title>
    <style type="text/css">
    .body{bgcolor="#d0d0d0";}
    .welcome{margin-left:500px;margin-top:200px;}
    </style>
    </head>
    <body bgcolor="#d0d0d0">
        <%
            String name = request.getParameter("username");
            String password = request.getParameter("password");
            String flag = request.getParameter("flag");
    //判断账号和密码是否合法
            if (name.equals("123") && password.equals("123")){
    //flag为true则保存cookie,为false则不保存
                if (flag != null){
    //定义cookie对象
                    Cookie c1 = new Cookie("username",name);
                    Cookie c2 = new Cookie("password",password);
                    response.addCookie(c1);
                    response.addCookie(c2);
    //使用session.setAttribute()将用户名和密码保存在session中                session.setAttribute("username",name);
                    session.setAttribute("password",password);
    //设定访问路径,将页面切换到welcome.jsp
                    response.sendRedirect("welcome.jsp");
                } else {
                    session.setAttribute("username",name);
                    response.sendRedirect("welcome.jsp");
                }
            } else {
                response.sendRedirect("fail.jsp");
            }
         %>
    </body>
    </html>
    

    3. welcome.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>主页</title>
    <style type="text/css">
    .body{  bgcolor="#d0d0d0";}
    .welcome{margin-left:500px;margin-top:200px;}
    .Box{margin-left:500px;margin-top:200px;}
    </style>
    </head>
    <body bgcolor="#d0d0d0">
    <div class="Box">
        <%
            Object user = session.getAttribute("username");
            out.print("欢迎回来,"+user);
         %>
        <br>
        <a href="cancel.jsp">注销</a>
    </div>
    </body>
    </html>
    登录成功的主页面,显示当前登录的用户名和用户的注销
    

    4. cancel.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>删除cookie</title>
    <style type="text/css">
    .body{bgcolor="#d0d0d0";}
    .welcome{margin-left:500px; margin-top:200px;}
    </style>
    </head>
    <body  bgcolor="#d0d0d0">
        <%
            if(session.getAttribute("username") != null){
    //如果用户名不为空,则删除session中的用户信息
                session.removeAttribute("username");
            }
    //设定页面跳转路径
            response.sendRedirect("login.jsp");
         %>
    </body>
    </html>
    

    5. del.jsp

    清除登录界面保存的账号密码信息。
    
    <%@ page language=*"java"* import=*"java.util.*"* pageEncoding=*"UTF-8"*%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    
    <head>
    
    <title>逻辑处理</title>
    
    </head>
    
    <body bgcolor=*"#d0d0d0"*>
    
     <%
    
     Cookie[] cookies = request.getCookies();
    
     for(int i = 0; i<cookies.length; i++){
    
     if((cookies[i].getName()).equals("username")){
    
     Cookie cookie = new Cookie("username","123");
    
     cookie.setMaxAge(0);
    
     response.addCookie(cookie);
    
     }
    
     if((cookies[i].getName()).equals("password")){
    
     Cookie cookie = new Cookie("password","123");
    
     cookie.setMaxAge(0);//cookie生命周期时长
    
    //添加cookie到浏览器[客户端](https://www.baidu.com/s?wd=%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)
    
     response.addCookie(cookie);  }
    
     }
    
     response.sendRedirect("welcome.jsp");
    
     %>
    
     <br>
    
    </body>
    
    </html>
    

    6. fail.jsp

    账号或密码错误时的提示页面。
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>登录失败</title>
    <style type="text/css">
    .Box{margin-left:500px;margin-top:200px;}
    </style>
    </head>
    <body bgcolor="#d0d0d0">
    <div class="Box">
         <%
            out.print("亲,你的用户名或密码输入有误!请返回重新输入!!!");
         %>
        <br>
        <a href="login.jsp">返回登录界面</a>
    </div>
    </body>
    </html>
    

    三、项目关键技术

    1. Cookie机制

    Int maxAge()://设置cookie失效时间,单位秒
    Cookie cookie=new Cookie(key,value);//创建cookie
    response.addCookie(cookie); // 将cookie输出到客户端
    Cookie.SetPath();//设置路径

    2.Session机制

    Session将数据保存在服务器上
    session.getAttribute("username").toString()获取session的值。
    Session.setAttribute(String attribute, Object value);设置session中的属性值
    session.removeAttribute("username");删除session的值

    3.其他

    request.getParameter获取文本框内输入的内容,
    response.sendRedirect实现界面的跳转,
    <%=%>jsp表达式

    四、项目特点

    可以实现用户的登录以及用户信息的保存和删除。

    五、项目总结

    通过本次项目的练习,对session和cookie有了进一步的认识
    cookie数据存放在客户的浏览器上,session数据放在服务器上;
    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用Cookie;
    单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的CookieE不能超过3K;Cookie和Session的方案虽然分别属于客户端和服务端,但是服务端的session的实现对客户端的cookie有依赖关系的,服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie,因此当我们完全禁掉浏览器的cookie的时候,服务端的session也会不能正常使用。

    相关文章

      网友评论

          本文标题:jsp简单的不要不要的(三)

          本文链接:https://www.haomeiwen.com/subject/nuyjtctx.html