登陆页中,用户输入用户名密码,点击提交,后台对照mysq数据库中,看是否有对应的用户名,以及密码是否正确。如果正确

则将用户名密码分两份Cookie保存。页面跳转到登陆成功页。

用户再次访问登陆页时,先取出Cookie,判断是否存在用户名密码的Cookie,如果有,则将值保存在变量或者request中。接着

将Cookie的变量或request赋值给用户名密码文本输入框。到此完成了保存用户名密码的功能。

test_6.11_login.jsp

<%@ page language="java" import="java.util.*,java.sql.*,java.net.*" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>

<html>
<head> 
</head>

<body>
<%! 
//定义数据库驱动程序 
public static final String DBDRIVER="org.gjt.mm.mysql.Driver"; 
public static final String DBURL="jdbc:mysql://localhost:3307/yunmobile"; 
public static final String DBUSER="rood"; 
public static final String DBPASS="234567"; 
%>
<%
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
%>
<%
String username_ = null;
Cookie c[]=request.getCookies();
if(c!=null)
{
for(int x=0;x<c.length;x++)
{
if(c[x].getName().equals("username"))
{
//在cookie值保存时如果编码了,取cookie时就需要进行解码。
//将cookie值取出来后,赋值给变量,用以之后的显示
username_ = URLDecoder.decode(c[x].getValue(),"UTF-8"); 
}
else if(c[x].getName().equals("password"))
{
//将cookie值取出来后,赋值给request,用以之后的显示
request.setAttribute("password",c[x].getValue());
}

}
%>

<form action="test_6.11_login.jsp" method="post" name="myform">
<!-- 实话说,下面的用户名和密码value的赋值,纠缠了好久。俩值一个用变量,一个用request保存 -->
用户名:<input type="text" id="userNameId" name="username" value="<%=username_ %>"/><br/>
<!-- ${}是显示变量password的值,如果值是null则不显示,非null则显示具体值 -->
密码:<input type="password" id="passWordId" name="password" value="${password}"/><br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>

<% 
//若用户名密码中有中文,虽然提交给当前页,底下的设置编码方式也是必须的
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("username");
String password=request.getParameter("password");
if(!(name==null||name.equals("")||password==null || password.equals("")))
{
try{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql="SELECT * FROM member WHERE name=? AND password=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,name);
pstmt.setString(2,password);
rs=pstmt.executeQuery();
if(rs.next())
{
if(rs.getString(3).equals(name) && rs.getString(2).equals(password))
{
//如果用户名密码和数据库中值匹配,则跳转到登陆成功页
response.setHeader("refresh","3;URL=test_6.11_page.jsp");
//登陆成功页面通过session传递用户名,用于登陆成功页面显示用户名
session.setAttribute("username",name); 
//cookie保存时,如果用户名或密码有汉字或者其他特殊字符需要进行编码
Cookie c1=new Cookie("username",URLEncoder.encode(name,"UTF-8"));
Cookie c2=new Cookie("password",password);
c1.setMaxAge(76000);
c2.setMaxAge(76000);
response.addCookie(c1);
response.addCookie(c2); 

}
else
{
out.println("<h2>用户名或密码错误哦哦哦!</h2>");
}
}catch(Exception e){
out.println(e);
}

%>
</body>
</html>

test_6.11_page.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>
<html>
<head><body> 
<% 
if(!(session.getAttribute("username")==null))
{
%>
<h3>欢迎<%=session.getAttribute("username") %>光临本系统</h3>
<%
}
else
{
%>
<h3>请先进行系统的<a href="login_6.11_login.jsp">登陆</a>!</h3>
<%} %>
</body>
</html>

cookie保存用户名及密码的更多相关文章

  1. 使用cookie保存用户名和密码

    效果图如下 从数据库中随意使用一个账号登录 登陆成功来到人中心 返回登录界面 实现代码如下 package com.test.controller; import java.io.IOExceptio ...

  2. Cookie保存用户名和密码

    首次登录: 第二次登录: 百度网盘: 链接: https://pan.baidu.com/s/12W4B5-Bfyc_021oyVYkEJw 提取码: r55h

  3. android 保存 用户名和密码 设置等应用信息优化

    1.传统的保存用户名,密码方式 SharedPreferences Editor editor = shareReference.edit(); editor.putString(KEY_NAME,& ...

  4. iOS 使用Keychain 保存 用户名和密码到 本地

    iOS 使用Keychain 保存 用户名和密码到 本地 之前曾把一些简单的数据保存在了plist,文件,及NsuserDefault里面, 但是如果要保存密码之类的,保存在本地就很不安全了: 但是利 ...

  5. Android简易实战教程--第十六话《SharedPreferences保存用户名和密码》

    之前在Android简易实战教程--第七话<在内存中存储用户名和密码> 那里是把用户名和密码保存到了内存中,这一篇把用户名和密码保存至SharedPreferences文件.为了引起误导, ...

  6. git保存用户名和密码

    git保存用户名和密码 简介:tortoiseGit(乌龟git)图形化了git,我们用起来很方便,但是我们拉取私有项目的时候,每次都要输入用户名和密码很麻烦,这里向大家介绍怎么避免多少输入 试验环境 ...

  7. 终于解决“Git Windows客户端保存用户名与密码”的问题(转载)

    add by zhj:不建议用这种方法,建议用SSH,参见 TortoiseGit密钥的配置 http://www.cnblogs.com/ajianbeyourself/p/3817364.html ...

  8. Git Windows客户端保存用户名和密码

    解决Git Windows客户端保存用户名和密码的方法,至于为什么,就不想说了. 1. 添加一个HOME环境变量,值为%USERPROFILE% 2. 开始菜单中,点击“运行”,输入“%Home%”并 ...

  9. TortoiseGit+msysgit保存用户名和密码

    本文以windows系统为例 保存用户名和密码 在C盘的c:\Users**qing** (或可能是C:\Users\Administrator) (替换自己的用户名)找到.gitconfig, 如果 ...

随机推荐

  1. java 环境变量与安装目录

    JDK安装完成后有如下文件夹 bin:存放JDK的各种工具命令,如javac.java等命令. jre:运行java程序所必须的JRE环境 lib:JDK工具命令的实际执行程序,如tools.jar中 ...

  2. golang init函数

    init函数有一下几点特性: init函数在main执行之前,自动被调用执行的,不能显示调用 每个包的init函数在包被引用时,自动被调用 每个包可以有多个init函数 同一个文件中可定义多个init ...

  3. Exchange 2003服务器中如何在公司资料夹中设置共享行事历

    Exchange 2003服务器中如何在公司资料夹中设置共享行事历 编写人:左丘文 2018-2-23 春节假期归来,开工第一天,感觉还没有从假期中恢复及调整过来.突然想到了我已经荒废了近一年的园子, ...

  4. Django的 admin管理工具

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...

  5. unittest框架断言方法

    assertEqual(a, b)          判断a==b assertNotEqual(a, b)     判断a!=b assertTrue(x)                bool( ...

  6. binlog之五:mysqlbinlog解析binlog乱码问题解密

    发现MySQL库的binlog日志出来都是乱码,如下所示: BINLOG ’ IXZqVhNIAAAALQAAAGcBAAAAAHoAAAAAAAEABHRlc3QAAno0AAEDAABUOcnY  ...

  7. 分布式开放消息系统RocketMQ的原理与实践(消息的顺序问题、重复问题、可靠消息/事务消息)

    备注:1.如果您此前未接触过RocketMQ,请先阅读附录部分,以便了解RocketMQ的整体架构和相关术语2.文中的MQServer与Broker表示同一概念 分布式消息系统作为实现分布式系统可扩展 ...

  8. HTML5: SVG (可缩放矢量图形)

    ylbtech-HTML5: SVG (可缩放矢量图形) 可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式.它由万维网联盟制定,是一个开放标准. 1. ...

  9. java并发编程 Executor,Executors,ExecutorService,CompletionService,Future,C

    使用CompletionService获取多线程返回值 CompletionService和ExecutorCompletionService详解 Java并发编程系列之十五:Executor框架

  10. [UE4]换枪需要做的事,容器:数组、集合、Map

    换枪: 1.需要同时保存多把枪 2.换下去的枪需要隐藏,而不是销毁 3.换枪应该有动作 4.不同的枪应该有不同的行为 蓝图中常见的容器 1.数组 特点: 1.元素连续存放 2.通过索引访问 3.索引从 ...