JavaWeb -- 会话, Cookie 和 Session
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out = response.getWriter();
- out.print("上次访问时间: ");
- //get Cookie 获得上次写入的cookie
- Cookie[] cookies = request.getCookies(); //从request获得cookie数组
- for(int i=0; cookies!=null && i<cookies.length; i++)
- {
- if( cookies[i].getName().equals("lastAccessTime") )
- {
- long cookieValue = Long.parseLong(cookies[i].getValue());
- Date date = new Date(cookieValue);
- out.print(date.toLocaleString());
- }
- }
- //write cookie 写入相应名字的cookie
- Cookie cookie = new Cookie("lastAccessTime", System.currentTimeMillis()+""); //新建访问时间cookie
- cookie.setMaxAge(1*30*24*3600);
- cookie.setPath("/WebTest3");
- response.addCookie(cookie); //将cookie添加到response,将会返回到浏览器
- }
- <!-- 10 minutes 10分钟-->
- <session-config>
- <session-timeout>10</session-timeout>
- </session-config>
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out = response.getWriter();
- HttpSession session = request.getSession(); //获得Session
- String sessionID = session.getId();
- Cookie cookie = new Cookie("JSESSIONID", sessionID);
- cookie.setPath("/WebTest3");
- cookie.setMaxAge(30*60); //设置保存时间,不然关闭浏览器即销毁相应的Cookie
- response.addCookie(cookie);
- session.setAttribute("name", "bug a TV");
- out.print("bug");
- //String url1 = response.encodeURL("/WebTest2/Demo4"); //如果浏览器的Cookie功能被关闭,则需要重写URL
- //String url2 = response.encodeURL("/WebTest2/Demo5");
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out = response.getWriter();
- HttpSession session = request.getSession(false);
- if(session!=null)
- {
- String product = (String) session.getAttribute("name");
- out.print("name = " + product);
- }
- }
实现自动登录功能:
- <body>
- Welcome: ${user.username} <br/>
- <a href="/WebTest3/1.html">Login</a> <br/>
- <a href="/WebTest3/Demo7">Logout</a> <br/>
- </body>
- <form action="/WebTest3/Demo6" method="post">
- 用户名:<input type="text" name="username"/> <br/>
- 密码: <input type="password" name="passwd"/><br/>
- 登录: <input type="submit" name="submit"/> <br/>
- 自动登录:<input type="checkbox" name="autoLogin" value="true"/> <br/>
- </form>
- @WebServlet("/Demo6")
- public class Demo6 extends HttpServlet {
- private static final long serialVersionUID = 1L;
- /**
- * @see HttpServlet#HttpServlet()
- */
- public Demo6() {
- super();
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out = response.getWriter();
- String username = request.getParameter("username");
- String passwd = request.getParameter("passwd");
- //System.out.println("log: " + username + " " + passwd);
- ArrayList<User> list = DB.getAll(); //从数据库获取用户信息
- for(User user : list)
- {
- if(user.getUsername().equals(username) && user.getPasswd().equals(passwd)) //用户名密码校验
- {
- request.getSession().setAttribute("user", user);
- response.sendRedirect("/WebTest3/welcome.jsp"); //获得Session
- return;
- }
- }
- out.write("Username or passwd Error");
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- this.doGet(request, response);
- }
- }
- class DB
- {
- private static ArrayList list;
- static
- {
- list = new ArrayList<User>();
- list.add(new User("kevin", "123456"));
- list.add(new User("xiang", "123456"));
- }
- public DB() {
- super();
- // TODO Auto-generated constructor stub
- }
- public static ArrayList getAll()
- {
- return list;
- }
- }
- public class User implements Serializable
- {
- private String username;
- private String passwd;
- public User() {
- super();
- // TODO Auto-generated constructor stub
- }
- public User(String username, String passwd) {
- super();
- this.username = username;
- this.passwd = passwd;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPasswd() {
- return passwd;
- }
- public void setPasswd(String passwd) {
- this.passwd = passwd;
- }
- }
登录注销Servlet Demo7
- public class Demo7 extends HttpServlet {
- private static final long serialVersionUID = 1L;
- /**
- * @see HttpServlet#HttpServlet()
- */
- public Demo7() {
- super();
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- HttpSession session = request.getSession();
- if( session==null)
- {
- response.sendRedirect("/WebTest3/welcome.jsp");
- return;
- }
- session.removeAttribute("user"); //删除Session中的User 注销
- response.sendRedirect("/WebTest3/welcome.jsp");
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- this.doGet(request, response);
- }
- }
JavaWeb -- 会话, Cookie 和 Session的更多相关文章
- 会话Cookie及session的关系(Cookie & Session)
会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...
- JavaWeb之Cookie和Session的区别
Cookie和Session的区别 一.cookie机制和session机制的区别 ********************************************************** ...
- java基础学习:JavaWeb之Cookie和Session
一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话其中不管浏览器发送多少请求,都视为一次会话,直到 ...
- JavaWeb 补充(Cookie&JSP&Session)
1. 会话技术 1. Cookie 2. Session 2. JSP:入门学习 会话技术 1. 会话:一次会话中包含多次请求和响应. * 一次会话:浏览器第一次给服务器资源发 ...
- 【JavaWeb】 Cookie和Session
Session和Cookie出现的原因: 由于Http是无状态的协议,会话之间没有任何关联,也就是上一次会话和下一次会话没有任何关联,因此出现了会话技术Cookie和Session 下面分别从Cook ...
- 会话Cookie与session的关系
在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用session和客户端之间进行通信,以及jsessionId是怎么回事,这并没有一个完整和正 ...
- 【Javaweb】Cookie和Session
会话技术 什么是会话 从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止的这段时间内容产生的多次请求和响应,合起来叫做浏览器和服务器之间的一次会话 会话管理作用 共享数据用的,并且是在不同请求间 ...
- IT兄弟连 JavaWeb教程 Cookie和Session应用结合使用
一般对于不要求安全的非敏感数据,建议存储在Cookie中! 对于敏感的数据,占用空间较小的,建议存储在Session中! 对于敏感的,较大的数据,存数据库!
- Django 组件-cookie 与 session
会话跟踪技术 1 什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10 ...
- Django框架07 /cookie和session
Django框架07 /cookie和session 目录 Django框架07 /cookie和session 1. django请求生命周期 2. cookie 3. session 4. 总结 ...
随机推荐
- fastjson List<> 转Json , Json 转List<>
SerializeWriter:相当于StringBuffer JSONArray:相当于List<Object> JSONObject:相当于Map<String, Object& ...
- [译]GLUT教程 - 改变窗体大小
Lighthouse3d.com >> GLUT Tutorial >> Basics >> Resizing the Window 上一章的例子创建了两个窗体,命 ...
- nginx大量TIME_WAIT的解决办法 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
vi /etc/sysctl.conf net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse=1 #让TIME_WAIT状态可以重用,这样即使TIME_W ...
- MIC的异步传输
关于signal和wait,属于异步传输的语法,即CPU端无需等待offload语句返回,即可异步运行下面的代码.一般用于启动MIC代码段后,并发执行CPU代码,达到同步执行的目的.另外一种用法是使用 ...
- php 判断数组中是否有重复的值
$input = array(4, "4", "3", 4, 3, "3"); $result = array_unique($input) ...
- 值类型,Nullable类型
1. 值类型 比如说int吧,是值类型,是个struct,是这样声明的 public struct Int32 : IComparable, IFormattable, IConvertible, I ...
- PHP如何进阶,提升自己
2017年6月15日14:32:51 今天看今日头条,刷到了一个话题?是:整天增删改查调接口,PHP程序员,如何突破职业瓶颈晋级? 晋级包括:职位晋级:技术能力晋级.当你的技术能力晋级了,职位晋级也就 ...
- Laravel开发:多用户登录验证(2)
上一篇讲了最基本的User验证,现在来讲一下Admin的验证. 先贴代码, 路由:routes/web.php加上以下代码, //... Route::get('admin/login', 'Admi ...
- POJ3468_A Simple Problem with Integers(线段树/成段更新)
解题报告 题意: 略 思路: 线段树成段更新,区间求和. #include <iostream> #include <cstring> #include <cstdio& ...
- 微信小程序 入门
目录结构: app.json .小程序的全局配置 pages: 当前小程序所有页面路径. window:小程序所有页面的顶部背景颜色,文字颜色定义在这里. tabBar: 设置底部 tab ne ...