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. [No0000C7]windows 10桌面切换快捷键,win10

    windows 10桌面切换快捷键:Ctrl+Win+←/→ 切换窗口:Alt+Tab(不是新的,但任务切换界面改进)任务视图:Win+Tab(松开键盘界面不会消失)创建新的虚拟桌面:Win+Ctrl ...

  2. notbook1.1

    1)95年创建java语言 2)1.2版本使java具有了生产能力 3)1.8版本增加 新的API lamda 函数式编程1.9 使之模块化 4)java编程的基本套路 1. 编写源代码2. 编译源程 ...

  3. 玩具装箱&土地购买

    今天一天8h 写了两道斜率优化的题(别问我效率为什么这么低 代码bug太多了) 关键是思考的不周全 估计是写的题少手生 以后就会熟练起来了吧. 这道题显然有一个n^2的dp方程 设f[i]表示前i件物 ...

  4. 转:spring data jpa、 hibernate、 jpa 三者之间的关系

    原文链接:spring data jpa. hibernate. jpa 三者之间的关系 spring data jpa hibernate jpa 三者之间的关系 JPA规范与ORM框架之间的关系是 ...

  5. 使用Python + Selenium打造浏览器爬虫

    Selenium 是一款强大的基于浏览器的开源自动化测试工具,最初由 Jason Huggins 于 2004 年在 ThoughtWorks 发起,它提供了一套简单易用的 API,模拟浏览器的各种操 ...

  6. LeetCode 892 Surface Area of 3D Shapes 解题报告

    题目要求 On a N * N grid, we place some 1 * 1 * 1 cubes. Each value v = grid[i][j] represents a tower of ...

  7. kubernetes的Controller Manager

    1. Controller Manager简介 Controller Manager作为集群内部的管理控制中心,负责集群内的Node.Pod副本.服务端点(Endpoint).命名空间(Namespa ...

  8. canvas将图片转成base64格式 以及 验证图片是否透明

    logoImgUpload:function(file) { let self = this; self.formatUpload(file); let reader = new FileReader ...

  9. java JDBC (七) org.apache.commons.dbutils 查询

    package cn.sasa.demo1; import java.sql.Connection; import java.sql.SQLException; import java.util.Li ...

  10. P4491 [HAOI2018]染色

    题目链接:洛谷 题目大意:$n$个位置染$m$种颜色,如果出现次数恰为$S$次的颜色有$k$种,则对答案有$W_k$的贡献,求所有染色方案的答案之和$\bmod 1004535809$. 数据范围:$ ...