LoginCookie.java

 1 package com.bjsxt.cookie;

 import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class LoginCookie
*/
@WebServlet("/LoginCookie")
public class LoginCookie extends HttpServlet { @Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("LoginCookie.service()"); //处理中文乱码
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8"); //获取请求参数
String name=req.getParameter("uname");
String pwd=req.getParameter("pwd");
String check=req.getParameter("che"); //处理业务
//1:判断是否选择三天免登录
if(check!=null&&"yes".equals(check)){
//判断用户名和密码是否为空
if((name!=null&&!"".equals(name))&&(pwd!=null&&!"".equals(pwd))){
//设置cookie,保存在客户端的硬盘中 Cookie cookiename=new Cookie("cookiename",URLEncoder.encode(name,"utf-8"));
Cookie cookiepwd=new Cookie("cookiename",URLEncoder.encode(pwd,"utf-8"));
System.out.println("LoginCookie.service(存储cookie)");
//设置cookie的有效期
cookiename.setMaxAge(3*24*3600);
cookiepwd.setMaxAge(3*24*3600); //设置访问路径
cookiename.setPath(req.getContextPath()+"/LoginCookie");
cookiepwd.setPath(req.getContextPath()+"/LoginCookie"); //发送给浏览器客户端
resp.addCookie(cookiename);
resp.addCookie(cookiepwd);
} //如果用户名和密码为空,从客户端硬盘中读取cookie
if((name==null||"".equals(name))||(pwd==null||"".equals(pwd))){
//读取cookie
Cookie[] cookies=req.getCookies();
//过滤出用户名和密码
if(cookies!=null&&cookies.length>0){
for(int i=0;i<cookies.length;i++){
//取出用户名
if("cookiename".equals(cookies[i].getName())){
//pwd=cookies[i].getValue();
name=URLDecoder.decode(cookies[i].getValue(),"utf-8");
}
//取出密码
if("cookiepwd".equals(cookies[i].getName())){
pwd=URLDecoder.decode(cookies[i].getValue(),"utf-8");
}
}
}
//打印英户名和密码
System.out.println("LoginCookie.service()name:"+name+"---pwd"+pwd);
}
//4校验用户名和密码
if("张三".equals(name)&&"abc".equals(pwd)){
resp.getWriter().print("welcome"+name+"login success");
}else{
resp.getWriter().print("login false "+name+pwd);
}
}
}
}
index.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="LoginCookie" method="post">
<table border="1" align="center">
<tr>
<th>用户名:</th>
<td><input type="text" name="uname" value=""></td>
</tr>
<tr>
<th>密码</th>
<td><input type="password" name="pwd" value=""></td>
</tr>
<tr>
<th colspan="2"><input type="checkbox" name="che" value="yes">三天免登录</th>
</tr>
<tr>
<th colspan="2"><input type="submit" value="登录"></th>
</tr>
</table>
</form>
</body>
</html>

cookie之三天免登录代码的更多相关文章

  1. Python3 使用requests库读取本地保存的cookie文件实现免登录访问

    1.  读取selenium模块保存的本地cookie文件来访问知乎 读取http://www.cnblogs.com/strivepy/p/9233389.html保存的本地cookie来访问知乎的 ...

  2. java:Cookie(常用操作),Cookie和Session免登录实例

     1.常用操作: package cn.zzsxt.lee.web.cookie; import java.io.IOException; import javax.servlet.ServletEx ...

  3. JAVAEE_Servlet_22_Cookie实现十天内免登录

    Cookie实现十天内免登录 代码: - CheckLogin 查看是否获取到了Cookie,如果获取到了连接数据库验证Cookie发过来的用户名和密码,如果没有获取到Cookie信息,那么就跳转到登 ...

  4. Retrofit2.0 ,OkHttp3完美同步持久Cookie实现免登录(二)

    原文出自csdn: http://blog.csdn.net/sk719887916/article/details/51700659: 通过对Retrofit2.0的<Retrofit 2.0 ...

  5. Android Okhttp完美同步持久Cookie实现免登录

    通过对Retrofit2.0的<Retrofit 2.0 超能实践,完美支持Https传输>基础入门和案例实践,掌握了怎么样使用Retrofit访问网络,加入自定义header,包括加入S ...

  6. [py][mx]django的cookie和session操作-7天免登录

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

  7. spring mvc 用cookie和拦截器实现自动登录(/免登录)

    Cookie/Session机制详解:http://blog.csdn.net/fangaoxin/article/details/6952954 SpringMVC记住密码功能:http://blo ...

  8. 微博爬虫“免登录”技巧详解及 Java 实现(业余草的博客)

    一.微博一定要登录才能抓取? 目前,对于微博的爬虫,大部分是基于模拟微博账号登录的方式实现的,这种方式如果真的运营起来,实际上是一件非常头疼痛苦的事,你可能每天都过得提心吊胆,生怕新浪爸爸把你的那些账 ...

  9. ServletContext对象应用——三天免登录

    1.用到的知识点: (1)Cookie (2)Session (3)ServletContext 其中Cookie和Session是会话技术的组成部分,一次会话从打开浏览器的某个站点开始,到浏览器关闭 ...

随机推荐

  1. [administrator] rpmbuild

    rpmbuild 1.  rpm是什么 RPM = RPM Package Manager = Redhat Package Manager https://en.wikipedia.org/wiki ...

  2. [daily][ulimit][coredump] 快速简单粗暴的用coredump调试

    http://www.cnblogs.com/hugetong/p/6898608.html 一个程序挂掉了, 怎么办?  启动coredump 写一个脚本: [root@T185 ~]# cat / ...

  3. mysql学习【第3篇】:使用DQL查询数据

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第3篇]:使用DQL查询数据 DQL语言 DQL( Data Query Lan ...

  4. Runloop, 多线程

    Runloop是个死循环,为甚么? 1. 保证程序不退出 2.监听用户的事件, 触摸,时钟,网络事件 UITrackingMode,只能触摸事件,没有触摸事件了,直接就停止了 Runloop: sou ...

  5. mysql设置指定ip访问,用户权限相关操作

    基础语法GRANT priv_type ON database.table TO user[IDENTIFIED BY [PASSWORD] 'password'] [,user [IDENTIFIE ...

  6. jenkins 下载和安装

    jenkins 下载和安装 地址:http://jenkins.io/download/ 下载完成后,点击安装,安装完会发现电脑里多了个jenkins文件夹,打开发现 jenkins.war, 然后点 ...

  7. linux 查看系统负载:uptime

    uptime命令用于查看系统负载,跟 w 命令的输出内容一致 [root@mysql ~]# uptime :: up days, :, user, load average: 1.12, 0.97, ...

  8. Python3学习之路~8.2 socket简单实例 实现ssh 发送大量数据

    实例1: 利用socket模拟客户端和服务器端各自收发一次数据: #Author:Zheng Na # 客户端 import socket # 声明socket类型,同时生成socket连接对象 cl ...

  9. Windows 10正式版的历史版本

    1.Windows 10 1507 初版Windows 10,代号TH1,版本号10240,发布于2015年7月. 2015年7月29日,微软正式发布了Windows 10操作系统.Windows 1 ...

  10. 算法面经之讯飞+CVTE

    一.科大讯飞(合肥) 概况:刚经历了科大讯飞的初面,大概35分钟左右,问的内容比较笼统,主要针对简历上的内容来,面试官比较亲切,回忆了一下面试内容. 建议:把简历上的内容整吧清楚,不知道的别瞎写,写了 ...