cookie保存用户名及密码
登陆页中,用户输入用户名密码,点击提交,后台对照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保存用户名及密码的更多相关文章
- 使用cookie保存用户名和密码
效果图如下 从数据库中随意使用一个账号登录 登陆成功来到人中心 返回登录界面 实现代码如下 package com.test.controller; import java.io.IOExceptio ...
- Cookie保存用户名和密码
首次登录: 第二次登录: 百度网盘: 链接: https://pan.baidu.com/s/12W4B5-Bfyc_021oyVYkEJw 提取码: r55h
- android 保存 用户名和密码 设置等应用信息优化
1.传统的保存用户名,密码方式 SharedPreferences Editor editor = shareReference.edit(); editor.putString(KEY_NAME,& ...
- iOS 使用Keychain 保存 用户名和密码到 本地
iOS 使用Keychain 保存 用户名和密码到 本地 之前曾把一些简单的数据保存在了plist,文件,及NsuserDefault里面, 但是如果要保存密码之类的,保存在本地就很不安全了: 但是利 ...
- Android简易实战教程--第十六话《SharedPreferences保存用户名和密码》
之前在Android简易实战教程--第七话<在内存中存储用户名和密码> 那里是把用户名和密码保存到了内存中,这一篇把用户名和密码保存至SharedPreferences文件.为了引起误导, ...
- git保存用户名和密码
git保存用户名和密码 简介:tortoiseGit(乌龟git)图形化了git,我们用起来很方便,但是我们拉取私有项目的时候,每次都要输入用户名和密码很麻烦,这里向大家介绍怎么避免多少输入 试验环境 ...
- 终于解决“Git Windows客户端保存用户名与密码”的问题(转载)
add by zhj:不建议用这种方法,建议用SSH,参见 TortoiseGit密钥的配置 http://www.cnblogs.com/ajianbeyourself/p/3817364.html ...
- Git Windows客户端保存用户名和密码
解决Git Windows客户端保存用户名和密码的方法,至于为什么,就不想说了. 1. 添加一个HOME环境变量,值为%USERPROFILE% 2. 开始菜单中,点击“运行”,输入“%Home%”并 ...
- TortoiseGit+msysgit保存用户名和密码
本文以windows系统为例 保存用户名和密码 在C盘的c:\Users**qing** (或可能是C:\Users\Administrator) (替换自己的用户名)找到.gitconfig, 如果 ...
随机推荐
- poj 2096 Collecting Bugs && ZOJ 3329 One Person Game && hdu 4035 Maze——期望DP
poj 2096 题目:http://poj.org/problem?id=2096 f[ i ][ j ] 表示收集了 i 个 n 的那个. j 个 s 的那个的期望步数. #include< ...
- TP5 首页导航一级和二级分类
<ul id="jsddm"> <li><a class="navi_home" href="{:url('/index ...
- DKH大数据分析平台解决方案优势说明
大数据技术的发展与应用已经在深刻地改变和影响我们的日常生活与工作,可以预见的是在大数据提升为国家战略层面后,未来的几年里大数据技术将会被更多的行业应用. 相信很多人对于大数据技术的应用还是处于一个非常 ...
- 企业微信jssdk分享接口管理系统
服务项目 新手技术咨询 企业技术咨询 定制开发 服务说明 QQ有问必答 QQ.微信.电话 微信开发.php开发,网站开发,系统定制,小程序开发 价格说明 200元/月 1000/月 商议 ...
- 2013-7-28 802.11n帧聚合
芯片开发阶段的帧聚合迥异于商用AP,前者更偏向实现过程,后者偏向结果.也就是说用户在使用商用设备时不会管你特性是如何实现的,他们只关心效果,开启这个功能能否实实在在的提高AP的吞吐量. 网上搜索了众多 ...
- bzoj1047 理想的正方形
Description 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. Input 第一行为3个整数,分别表示a,b,n的值第二行至第 ...
- java正则表达式学习
1.简单认识正则: public class Test { public static void main(String[] args) { //简单认识正则 p("abc".ma ...
- 共享存储(ISCSI网络存储)
server端:(192.168.100.11) 分区sdb 分别为10G和5G #fdisk /dev/dab …… 同步分区表 #partprobe /dev/sdb # yum install ...
- 关于Oracle与MySQL的使用总结
平时使用的比较多的数据库管理系统就是Oracle和MySQL,我在这里记录下使用过程中的遇到的问题以及解决方案,以备不时之需 Oracle 关于表空间 Oracle创建数据的代价还是比较大的,所以使用 ...
- 阿里数据服务P6~P7晋升要点
这是我在2015年高德负责P6晋升评审为团队成员准备的要点,整理下. 1. 数据仓库难点 1.1 分布式OLAP设计与选型 传统BI 友盟,Talking Data 启明星 keylin phonie ...