1:session进行身份验证的原理:

当客户端第一次访问服务器的时候,此时客户端的请求中不携带任何标识给服务器,所以此时服务器无法找到与之对应的

session,所以会新建session对象,当服务器进行响应的时候,服务器会将session标识放到响应头的Set-Cookie中,会以

key-value的形式返回给客户端,例:JSESSIONID=7F149950097E7B5B41B390436497CD21;其中JSESSIONID是固定的,

而后面的value值对应的则是给该客户端新创建的session的ID,之后浏览器再次进行服务器访问的时候,客户端会将此key-value

放到cookie中一并请求服务器,服务器就会根据此ID寻找对应的session对象了;(当浏览器关闭后,会话结束,由于cookie消

失所以对应的session对象标识消失,而对应的session依然存在,但已经成为报废数据等待GC回收了)

对应session的ID可以利用此方法得到:session.getId();

2:session的生命周期:

比方说可以通过这样的方式使用:

3:常用方法示例:

登录界面:

 <%@ 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> SessionId:<%=session.getId() %>
<br><br> IsNew:<%=session.isNew() %>
<br><br> MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>
<br><br> CreateTime:<%=session.getCreationTime() %>
<br><br> LastAccessTime<%=session.getLastAccessedTime() %>
<br><br> <%
Object username = session.getAttribute("username");
if(username==null){
username="";
}
%> <form action="hello.jsp" method="post"> userName:<input type="text" name="userName" value="<%=username %>"/>
<input type="submit" value="Submit"/> </form> </body>
</html>

展示界面:

 <%@ 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> SessionId:<%=session.getId() %>
<br><br> IsNew:<%=session.isNew() %>
<br><br> MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>
<br><br> CreateTime:<%=session.getCreationTime() %>
<br><br> LastAccessTime<%=session.getLastAccessedTime() %>
<br><br> Hello:<%=request.getParameter("userName") %>
<br><br> <%
session.setAttribute("username", request.getParameter("userName"));
%> <a href="login.jsp">重新登陆</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="logout.jsp">注销</a> </body>
</html>

注销界面:

 <%@ 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> SessionId:<%=session.getId() %>
<br><br> IsNew:<%=session.isNew() %>
<br><br> MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>
<br><br> CreateTime:<%=session.getCreationTime() %>
<br><br> LastAccessTime<%=session.getLastAccessedTime() %>
<br><br> Bye:<%=request.getParameter("userName") %>
<br><br> <%
session.invalidate();
%> <br><br>
<a href="login.jsp">重新登陆</a> </body>
</html>

首次进入登陆界面的时候:

在userName中输入名称Lily后点击登录:

当再次点击重新登陆时利用session进行数据回显由于session没有被注销,所以session不变:

当点击注销按钮后,登录时的session失效,原session对象被销毁:

当再次点击重新登陆或者是刷新界面后,会创建新的session:

最新文章

  1. ref out
  2. FreeBSD_11-系统管理——{Part_0-基础}
  3. 实战 SQL Server 2008 数据库误删除数据的恢复
  4. IOS开发-cell的动态高度
  5. leetcode题解:Tree Level Order Traversal II (二叉树的层序遍历 2)
  6. 基于Ubuntu 15.04 LTS编译Android5.1.0源代码 (转)
  7. Eclipse使用Maven创建Web项目
  8. volley使用与解析(一)
  9. DIV以及图片水平垂直居中兼容多种浏览器
  10. CF 192 DIV.2
  11. ECharts模拟迁徙案例
  12. Oracle 表操作
  13. windows类书的学习心得
  14. gmock
  15. SpringBoot(五)Springmvc+Mybatis+mysql
  16. windows上测试磁盘io性能
  17. ORB(oriented FAST and rotated BRIEF)特征提取与检测
  18. (O)JS高阶函数应用——函数节流
  19. C# 多线程task
  20. python之random库

热门文章

  1. Android自带的分享功能案例
  2. iOS 沙盒文件操作
  3. HDU OJ u Calculate e
  4. 下载Youku视频观看
  5. 2016/3/10 PHP环境搭建 LAMP WAMP
  6. 一个DIV相对于另一个DIV定位
  7. 程序员的vim
  8. DBENV-&gt;open
  9. solr 7.2.1 单机及伪集群启动
  10. java 编码设置