Cookie管理

Cookie对象是由服务器产生并保存在客户端的信息,常用他记录用户个人信息以及个性化设置。用户每次访问网点时,应用程序就可以检索以前保存的信息

Cookie对象属于的类是javax.servlet.http.Cookie 他不是JSP的内置对象

1.Cookie的基本用法

一般需要两步操作,首先有服务器创建Cookie对象保存在客户端,然后再JSP或Servlet中读取Cookie并进行操作。


自动登录过程

//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>
</head> <body>
<form action="logincheck.jsp" method="post">
用户名:<input type="text" name="username"><br> 密&nbsp;&nbsp;码:<input type="password" name="userpwd"/><br>
<input type="submit" value="登陆">
</form>
</body>
</html>

//logincheck.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>
<%
String un=request.getParameter("username"); //获取用户名
if(un!=null){
Cookie c=new Cookie("username",un);
c.setMaxAge(30*24*3600);//设置Cookie有效期为30天
response.addCookie(c);//将Cookie对象保存在客户端
session.setAttribute("username",un);//将用户名存到session范围内用于权限检查
response.sendRedirect("main.jsp");//重定向到主页面
}
%>
</body>
</html>

//main.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>
<%
String username=(String)session.getAttribute("username");
if(username==null){ //session中用户名为空说明用户没登陆
Cookie[] cs=request.getCookies();
String v=null;
if(cs!=null){
for(int i=0;i<cs.length;i++){
if(cs[i].getName().equals("username")){ //获取名称为username的Cookie对象值
v=cs[i].getValue();
}
}
}
if(cs!=null){ //Cookie值不空,自动登陆成功
session.setAttribute("username",v);
out.print(v+",您好!");
}else{ //自动登陆失败,转到登陆界面
out.print("您还没有注册,2秒后转到注册界面!");
response.setHeader("Refrush","2;url=login.jsp");
}
}
else{ //session中用户名不空说明用户已经登陆
out.print(username+"您好!");
}
%>
</body>
</html>

2017.11.23 利用Cookie管理实现自动登陆的更多相关文章

  1. 2017.11.23 display fun --STM8

    unsigned char disp_mode;unsigned char disp_last_mode;unsigned char disp_sub_mode;unsigned char disp_ ...

  2. node.js平台下,利用cookie实现记住密码登陆(Express+Ejs+Mysql)

    本博文需有node.js+express+mysql入门基础,若基础薄弱,可参考博主的其他几篇node.就是博文: 1.下载Mysql数据库,安装并配置 创建用户表供登录使用: 2.node.js平台 ...

  3. 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍

    目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...

  4. Beta周第14次Scrum会议(11/23)【王者荣耀交流协会】

    一.小组信息 队名:王者荣耀交流协会 小组成员 队长:高远博 成员:王超,袁玥,任思佳,王磊,王玉玲,冉华 小组照片 二.开会信息 时间:2017/11/23 17:02~17:14,总计12min. ...

  5. 第35次Scrum会议(11/23)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文小组照片 二.开会信息 时间:2017/11/23 17:03~17:24,总计21min.地点:东北师 ...

  6. Jmeter系列(49)- 详解 HTTP Cookie 管理器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 功能一 首先,它像网络浏览器 ...

  7. ThinkPHP做自动登陆及异位或加密COOKIE!

    异位或加密方法: /* *登陆如果自动登陆加密 *默认是0解密状态,1是加密 *采用的方法是异位或加密 */ function encrytion($value,$type=0){ $key = md ...

  8. Qt 学习之路 2(11):布局管理器

    Home / Qt 学习之路 2 / Qt 学习之路 2(11):布局管理器 Qt 学习之路 2(11):布局管理器  豆子  2012年9月4日  Qt 学习之路 2  70条评论 所谓 GUI 界 ...

  9. Java Web Application使Session永不失效(利用cookie隐藏登录)

    在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...

随机推荐

  1. java——删除链表中等于给定值的所有元素

    class ListNode{ int val ; ListNode next; public ListNode(int x) { val = x; } public ListNode(int[] a ...

  2. vue 组件之间数据传递(七)

    1.props:父组件 -->传值到子组件 app.vue是父组件 ,其它组件是子组件,把父组件值传递给子组件需要使用 =>props 在父组件(App.vue)定义一个属性(变量)sex ...

  3. Google Chrome实用插件

    Tempermonkey 打开上面的链接需要KXSW_VPN_FQ,下面提供国内获取方式 下载 Tempermonkey_4.7 [提取码:7019]并解压 打开C:\Users\%USERNAME% ...

  4. 笔记本Win8 换Win7 设置 BIOS

    去年买了台笔记本,笔记本自带win8系统,想安装Win7折腾了好久都没有安装成功 后来在BIOS中找到了一个uefi/legacy boot项,将原来的uefi only 修改为legacy only ...

  5. tomcat入门(一)几种常见的使用tomcat部署项目的方式

    1.常规方式部署 直接把web项目复制到tomcat安装目录下的%Tomcat_Home%/webapps/{web项目} 2.使用控制台进行部署 若一个web应用结构为D:\workspace\We ...

  6. RTT设备与驱动之硬件定时器

    硬件定时器可以对外部时钟进行计数,利用内部时钟进行定时. 函数 描述 rt_device_t rt_device_find(const char* name); 查找定时器设备 rt_err_t rt ...

  7. cout和printf不能混用

    1.两者的缓存机制不同:printf无缓冲区,而std::cout有 (其实printf也是有缓冲区的,https://blog.csdn.net/ithzhang/article/details/6 ...

  8. 性能测试工具LoadRunner15-LR之负载生成器(Load Generators)

    简介 对场景进行设计后,需要对负载生成器进行管理和配置.Load Generators是运行脚本的负载引擎(相当于加压机)主要功能是生成虚拟用户进行负载,在默认情况下使用本地的负载生成器来运行脚本. ...

  9. 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现

    不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import ja ...

  10. php 关于时间的函数

    //返回1970年1月1日零点以来的秒数.    //定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. time(); ...