cookie记录用户名和密码
getAttribute和getParameter的区别:
request.getAttribute():是request时设置的变量的值,用request.setAttribute("name","您自己的值");来设置值,
request.getParameter():提取发送过来的参数如:本网页
登录页面 login.java
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//判断是否是错误
String error = (String)request.getAttribute("error");
System.out.println("---error---"+ error); //拿到客户端携带的所有的cookie
String username = "";
String password = "";
//拿到所有的cookie
Cookie[] cs = request.getCookies();
for (int i = 0;cs != null && i < cs.length; i++) {
Cookie c = cs[i];
if(c.getName().equals("name")){
username = c.getValue();
System.out.println("拿到了cookie的用户名" + username);
}
if(c.getName().equals("password")){
password = c.getValue();
System.out.println("拿到了cookie的密码" + password);
} }
//创建页面
out.write("登录页面<br>");
if(error != null){
out.write("<font color=red>" + error +"</font><br>");
}
out.write("<form action='" + request.getContextPath() + "/servlet/rember' method='post' >");
out.write("姓名:<input type='text' name='username' value='"+ username +"'><br><br> ");
out.write("密码:<input type='password' name='password' value='"+ password +"'><br> ");
out.write("<input type='checkbox' name='remember' value='on'>记住用户名和密码两周<br> ");
out.write("<input type='submit' value='登录'><br> ");
out.write("</form>"); }
处理数据页面:
rember.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//拿到浏览器传递的数据
String name = request.getParameter("username");
String password = request.getParameter("password");
String remember = request.getParameter("remember");
System.out.println("----username------" + name);
System.out.println("----password------" + password);
System.out.println("----remember------" + remember); //判断数据,用户名=密码的逆序
String repassword = new StringBuffer(password).reverse().toString();
if(name.equals(repassword)){
//合法用户
//判断是否需要记住
if("on".equals(remember)){
Cookie c1 = new Cookie("name",name);
Cookie c2 = new Cookie("password",password);
c1.setMaxAge(Integer.MAX_VALUE);
c2.setMaxAge(Integer.MAX_VALUE);
//设定访问路径
c1.setPath(request.getContextPath());
c2.setPath(request.getContextPath());
//向客户端发送Cookie
response.addCookie(c1);
response.addCookie(c2); } request.setAttribute("name", name);
request.getRequestDispatcher("main").forward(request, response);
}else{
//非法用户
request.setAttribute("error", "用户名或者密码错误");
request.getRequestDispatcher("login").forward(request, response);
}
}
登录后的主页面:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String name = (String)request.getAttribute("name");
System.out.println("---main----name----"+name);
out.write("欢迎回来 " + name);
}
登录,输入用户名和密码,如果勾选了记住用户名和密码选项,则将用户名和密码放到cookie中,下次登录则获取cookie中的用户名和密码;
如果用户名和密码错误,则将错误信息通过request对象发送回客户端。
cookie记录用户名和密码的更多相关文章
- cookie记录用户名
在说如何用cookie记录用户名之前,我们先来说说cookie的工作原理: cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据 ; 1. ...
- 使用cookie保存用户名和密码
效果图如下 从数据库中随意使用一个账号登录 登陆成功来到人中心 返回登录界面 实现代码如下 package com.test.controller; import java.io.IOExceptio ...
- cookie保存用户名及密码
登陆页中,用户输入用户名密码,点击提交,后台对照mysq数据库中,看是否有对应的用户名,以及密码是否正确.如果正确 则将用户名密码分两份Cookie保存.页面跳转到登陆成功页. 用户再次访问登陆页时, ...
- jquery.cookie.js实现cookie记住用户名和密码
记得导入 <script src="jquery.js" type="text/javascript"></script> <sc ...
- java web项目用cookie记住用户名、密码
1.jsp页面: <% String flag = (String)session.getAttribute("flag")==null?"":(Stri ...
- dom cookie记录用户名
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 使用Cookie记住用户名和密码
Login.jsp <form name = "f1" method="get" action="servlet/LoginServlet&qu ...
- SQLServer删除登录记录用户名和密码
介绍: 作为一名开发人员都会知道我们做的项目都要用到数据库,数据库都需要账号和密码,然而问题来了,做的东西多了那些没用的账号和密码还在哪里纠缠着我们.所有我们不能忍了删除掉他. 网上很多都是2008的 ...
- Cookie保存用户名和密码
首次登录: 第二次登录: 百度网盘: 链接: https://pan.baidu.com/s/12W4B5-Bfyc_021oyVYkEJw 提取码: r55h
随机推荐
- bzoj 1195: [HNOI2006]最短母串 爆搜
1195: [HNOI2006]最短母串 Time Limit: 10 Sec Memory Limit: 32 MBSubmit: 894 Solved: 288[Submit][Status] ...
- BZOJ 1044
1044: [HAOI2008]木棍分割 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1393 Solved: 497[Submit][Statu ...
- JQuery 去除字符串两边多余的空格
var str = " hello "; str = $.trim(str);//去除多余空格 //变成了"hello"
- 【HDU3374】 String Problem (最小最大表示法+KMP)
String Problem Description Give you a string with length N, you can generate N strings by left shift ...
- 《深入理解linux内核架构》第二章 进程管理和调度
2.1进程优先级 进程优先级 硬实时进程 软实时进程 抢占式多任务处理 2.2进程生命周期 用户太切换到核心态的办法 系统调用 中断 抢占调度模型优先级普通进程<系统调用<中断 普通进程可 ...
- C++ Primer 随笔 Chapter 4 数组和指针
1.数组:数组是由类型名.标识符和维数组成的符合数据类型,类型名规定了存放在数组中的元素类型,维数规定数组中包含元素的个数而标识符就是数组的名称.例如: int arr[10]; 其中 int 是类 ...
- poj2154
利用bzoj2705的结论我们很容易优化这道等价类计数的问题 sum(n^gcd(i,n))/n mod p (1<=i<=n) =sum(phi(n/L)*n^L)/n mod p (n ...
- 检测Office是否安装以及获取安装 路径 及安装版本 QQ,迅雷,旺旺 C#代码
#region 检测Office是否安装 ///<summary> /// 检测是否安装office ///</summary> ///<param name=" ...
- cout internal
cout internal */--> pre { background-color: #2f4f4f;line-height: 1.6; FONT: 10.5pt Consola," ...
- CentOS搭建GIT服务器【二】-HTTP源码访问及smart http协议
搭建完git之后,我们希望可以在线看见源码,以及使用http协议上传下载源码. 安装gitweb.httpd: yum install gitweb yum install httpd gitweb默 ...