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记录用户名和密码的更多相关文章

  1. cookie记录用户名

    在说如何用cookie记录用户名之前,我们先来说说cookie的工作原理: cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据 ; 1. ...

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

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

  3. cookie保存用户名及密码

    登陆页中,用户输入用户名密码,点击提交,后台对照mysq数据库中,看是否有对应的用户名,以及密码是否正确.如果正确 则将用户名密码分两份Cookie保存.页面跳转到登陆成功页. 用户再次访问登陆页时, ...

  4. jquery.cookie.js实现cookie记住用户名和密码

    记得导入 <script src="jquery.js" type="text/javascript"></script> <sc ...

  5. java web项目用cookie记住用户名、密码

    1.jsp页面: <% String flag = (String)session.getAttribute("flag")==null?"":(Stri ...

  6. dom cookie记录用户名

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 使用Cookie记住用户名和密码

    Login.jsp <form name = "f1" method="get" action="servlet/LoginServlet&qu ...

  8. SQLServer删除登录记录用户名和密码

    介绍: 作为一名开发人员都会知道我们做的项目都要用到数据库,数据库都需要账号和密码,然而问题来了,做的东西多了那些没用的账号和密码还在哪里纠缠着我们.所有我们不能忍了删除掉他. 网上很多都是2008的 ...

  9. Cookie保存用户名和密码

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

随机推荐

  1. Uva10207 The Unreal Tournament

    题目链接戳这里 首先递归调用函数次数其实是可以预处理出来的,但是这里我们介绍一个更屌的做法. 设\(F(i,j)\)为求解\(P(i,j)\)所遍历的节点数目,则有\[F(0,j)=F(i,0)=0\ ...

  2. xbmc

    XBMC是一个优秀的自由和开源的(GPL)媒体中心软件.XBMC最初为Xbox而开发,可以运行在Linux.OSX.Windows.Android4.0系统.XBMC能够播放几乎所有流行的音频和视频格 ...

  3. 【Spring】Spring IOC原理及源码解析之scope=request、session

    一.容器 1. 容器 抛出一个议点:BeanFactory是IOC容器,而ApplicationContex则是Spring容器. 什么是容器?Collection和Container这两个单词都有存 ...

  4. Android开源项目发现---GridView 篇(持续更新)

    1. StaggeredGridView 允许非对齐行的GridView 类似Pinterest的瀑布流,并且跟ListView一样自带View缓存,继承自ViewGroup 项目地址:https:/ ...

  5. relink:在Linux/UNIX平台上relink Oracle软件(转)

    当操作系统升级后.操作系统打完补丁后.安装完Oracle补丁之后和relink过程中出现问题时,都会用到relink方法来保证Oracle软件的正常使用.本文介绍一下relink方法的使用.   1. ...

  6. 火车车次查询-余票查询--Api接口

    1.来自12306的火车车次数据 使用12306网站的接口,查询余票.此接口采集自 这里. 全国火车站代号字典,下载 . 火车票余票查询 http://dynamic.12306.cn/otsquer ...

  7. 【HDOJ】1175 连连看

    BFS.wa了一下午,原来是YES,写成了Yes. #include <iostream> #include <cstdio> #include <cstring> ...

  8. 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

    一张图看懂开源许可协议,开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozi ...

  9. WIN7下制作的ubunbu U盘安装无法使用

    想在电脑上装个ubuntu 12.04来个双系统.就在win7下用U盘制作了个安装程序.但是U盘启动安装后一直无法开始安装.网上找了大半天才有个结论解决了. 步骤如下: 去ubuntu官网下载安装的i ...

  10. 逐行返回http响应的内容

    前言 问题:1.什么是特殊字符? 2.为什么要处理特殊字符? 答:特殊字符指相对于传统或常用的符号外,使用频率较少字符且难以直接输入的符号,比如数学符号:单位符号:制表符等 有些符号在URL中是不能直 ...