美文网首页
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简单的不要不要的(三)

    一、 项目概述 本项目主要实现了以下功能: 用户登录验证 账号密码信息的保存 登录成功后用户信息的保存显示 账号或...

  • jsp简单的不要不要的(一)

    第一章 jsp概述 jsp技术概述 在了解JSP技术之前,首先需要了解与JSP技术相关的一些概念,这样有助于...

  • jsp简单的不要不要的(二)

    一、jsp的技术特征 1.跨平台 JSP是以Java为基础开发的,所以不管是在何种平台下,只要服务器支持JSP,就...

  • 标签学习01

    1、标签的作用 自定义标签是属于JSP规范的。 开发原则:JSP中不要使用<%%>(标签替换)和<%=%>(EL表...

  • Jsp&&Servelet简单的增删改查系统

    jsp&&servelet简单的增删改查系统 jsp&&servelet简单的增删改查系统是采用jsp和servl...

  • 谨以此文激励准备毕业的自己

    让我来个简单粗暴的开头:不要太在意别人的想法!不要太在意别人的想法!!不要太在意别人的想法!!!重要的事情说三遍。...

  • 控制脾气,留住福气!

    人生,其实很简单。 活在这个世界上,简单,快乐,就是最舒服的,不要让自己的心情变阴霾。 不要多想,不要猜疑,不要生...

  • IBM websphere7使用EL表达式报JSPG0122E

    原因:was7用的是jsp2.1(java EE5),而jsp2.1是不支持el表达式你调用方法的。解决方法:不要...

  • 亲身经历:如何高效的预防胃病

    简单易行,亲测有用,快快行(点)动(赞)啊亲。 最重要的一点,不要节食!不要节食!不要节食!重要事情说三遍。 以下...

  • 简单的离开

    简单点不要让分别显得有意 不要带着失落的情绪 不要幻想不散的宴席 更何况她也不是你这桌的客 简单点不要把这天的云彩...

网友评论

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

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