`
涛涛饭
  • 浏览: 10121 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论
阅读更多

自己总结一些会话跟踪的知识点,希望对大家有帮助!

 

1. 什么是会话跟踪

 

对同一个用户对服务器的连续的请求和接受响应的监视 

 

2.举例阐述四种会话跟踪技术的特点,应用场景

 

会话跟踪常用的方法: 

URL重写:URL(统一资源定位符)Web上特定页面的地址,URL重写的技术就是在URL结尾添加一个附加数据以标识该会话,把会话ID通过URL的信息传递过去,以便在服务器端进行识别不同的用户

 

url?参数名=&参数名=值··········

 

例如:

<div class="menu_title">
	<a href="oneArticle.jsp?id=<%=rs.getInt("id")%>">
<%=rs.getString("articletitle")%></a>
<%=rs.getString("articletime")%>
	<a href="lanmu.jsp">
<%=rs.getString("menuname")%></a>
</div>

 rs.getInt("id")这是通过数据库查询出来的,这个ID它是标识了唯一一条用户资料的信息,并且将这个ID数据传给oneArticle.jsp这个jsp页面。

 

隐藏表单域:将会话ID添加到HTML表单元素中提交到服务器,此表单元素并不在客户端显示

<form action="updateinfoChat.jsp" method="post">
<input type="hidden"name="userid"value="<%=userid%>"/>
				
					
帐号:<%=rs.getString("username") %><br/>
密码:<input type="password" name="userpwd" value="<%=rs.getString("userpwd")%>" /><br/>
确认密码:<input type="password" name="userpwd2"/><br/>
Email:<input type="text" name="email" value="<%=rs.getString("useremail")%>"/><br/>
电话:<input type="text" name="tel" value="<%=rs.getString("usertel")%>"/><br/>
个性签名:<input type="text" name="userdesc" value="<%=rs.getString("userdesc")%>"/><br/>
<input type="submit" value="确认修改"/>
</form>

 <input type="hidden"name="userid"value="<%=userid%>"/>

这个就是通过隐藏表单域来实现会话跟踪。

Cookie:CookieWeb服务器发送给客户端的一小段信息,客户端请求时可以读取该信息发送到服务器端,进而进行用户的识别。对于客户端的每次请求,服务器都会将Cookie发送到客户端,在客户端可以进行保存,以便下次使用
客户端可以采用两种方式来保存这个Cookie对象,一种方式是保存在客户端内存中,称为临时Cookie,浏览器关闭后这个Cookie对象将消失。另外一种方式是保存在客户机的磁盘上,称为永久Cookie。以后客户端只要访问该网站,就会将这个Cookie再次发送到服务器上,前提是这个Cookie在有效期内。这样就实现了对客户的跟踪。
Cookie
是可以被禁止的。

//创建Cookie对象

Cookie cookieName = new Cookie("userName",userName);

cookieName.setMaxAge(60*60);

//cookie对象响应给客户端

response.addCookie(cookieName);

      

//创建Cookie对象

Cookie cookiePwd = new Cookie("userPwd",userPwd);

cookiePwd.setMaxAge(60*60);

//cookie对象响应给客户端

response.addCookie(cookiePwd); 

将用户的账号和密码存到cookie里面,组成一个cookie数组,通过cookie数组可以随时获得用户的账号和密码。

session: 
每一个用户都有一个不同的session,各个用户之间是不能共享的,是每个用户所独享的,在session中可以存放信息。 
在服务器端会创建一个session对象,产生一个sessionID来标识这个session对象,然后将这个sessionID放入到Cookie中发送到客户端,下一次访问时,sessionID会发送到服务器,在服务器端进行识别不同的用户
Session是依赖Cookie的,如果Cookie被禁用,那么session也将失效 

session.setAttribute("user", userName);

session.setAttribute("userid", userid);

将用户的账号和密码存到session对象里面,通过session对象随时可以获得用户的账号和密码。

3.cookiesession的共同之处在于:

cookiesession都是用来跟踪浏览器用户身份的会话方式

CookieSession的区别:

两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。

 

(1)cookie数据存放在客户的浏览器上,session数据放在服务器上
(2)cookie
不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
(3)session
会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE
(4)
单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K
(5)
所以:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE

4.session对象的创建

HttpSession session=request.getSession(); 

HttpSession session=request.getSession(true); 

上面二种创建session的方法效果是一样的。首先获取传递进来的在Cookie中存放的sessionID,再根据sessionID查找session对象,如果没有找到将创建一个新的session对象,并保存到Cookie中发送到客户端。如果找到了,就将session对象赋予给引用


HttpSession session=request.getSession(false); 

 

如果不存在会话的时候不想创建新的会话

这种方式创建过程: 首先获取传递进来的在Cookie中存放的sessionID,再根据sessionID查找session对象,如果没有找到将返回null,如果找到了,就将session对象赋予给引用

5.访问与会话相关联的信息

HttpSession 对象存在于服务器上,他们并不在网络上传输,它们只是通过某种后台运作机制比如cookieurl重写自动与客户关联起来Session对象拥有内建的数据结构散列表,存储任意数量的键与键值的对。

 

 

 

Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态

 

分享到:
评论
1 楼 fallagain 2016-03-02  

相关推荐

    JSP基础知识总结(JSP技术,XML配置,会话,JavaBean)

    本文通过三个部分来介绍JSP的基础知识: 第一部分为Servlet技术,包括Servelt入门,会话跟踪,JavaMal和Servlet. 第二部分就是Jsp技术,包括:jsp简介,...•3 会话跟踪技术总结 •4 构建实体Bean的原则 •5 MVC实现数据封装

    JSP学习总结(多人智慧的结晶)

    JSP学习总结 Servlet三个要素: 四种会话跟踪方式: 五:服务器上的五大对象 页面构成:7种元素 JavaBean: 表达式语言:

    JSP(WEB 开发技术)实验指导

    实验五 会话跟踪处理 18 1.实验目的: 18 2.实验内容: 18 3.作业: 20 实验六 基本 Servlet 开发 20 1.实验目的: 20 2.实验内容 : 20 3.作业: 22 实验七 JavaBean 使用 23 1.实验目的: 23 2.实验内容 : 23 ...

    java 面试题 总结

    动态INCLUDE用jsp:include动作实现 &lt;jsp:include page="included.jsp" flush="true" /&gt;它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件的...

    Java面试宝典2010版

    14. JSP中动态INCLUDE与静态INCLUDE的区别? 89 15、两种跳转方式分别是什么?有什么区别? 89 16、页面间对象传递的方法 89 17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 90 18、MVC的各个部分都有...

    spring security 参考手册中文版

    8.1问题跟踪 72 8.2成为参与 73 8.3更多信息 73 第二部分 架构与实现 73 9.技术概述 73 9.1运行环境 73 9.2核心组件 74 9.2.1 SecurityContextHolder,SecurityContext和认证对象 74 获取有关当前用户的信息 75 ...

    Spring Security 中文教程.pdf

    4.1. 任务跟踪 4.2. 成为参与者 4.3. 更多信息 II. 结构和实现 5. 技术概述 5.1. 运行环境 5.2. 核心组件 5.2.1. SecurityContextHolder, SecurityContext 和 Authentication对象 5.2.1.1. 获得当前...

    Spring Security-3.0.1中文官方文档(翻译版)

    4.1. 任务跟踪 4.2. 成为参与者 4.3. 更多信息 II. 结构和实现 5. 技术概述 5.1. 运行环境 5.2. 核心组件 5.2.1. SecurityContextHolder, SecurityContext 和Authentication 对象 5.2.1.1. 获得当前...

    基于J2EE架构的在线考试系统(源代码+论文+开题报告+外文翻译+英文文献+答辩PPT).zip

    以便在考试过程中全程跟踪考试状态。 2)系统的权限一般分为两种:管理员和学生。不同的身份使用不同的权限和功能。 3)管理员需要对试题和考生进行有效的管理,负责试题的录入及更新和修改,对试题的分类,每次考试...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【WEB】实现会话跟踪的技术有哪些? 40 【WEB】什么是ORM 42 【反射】反射中,Class.forName和classloader的区别 42 【JVM】JAVA编译原理和JVM原理 42 【JVM】Java内存模型 44 【JVM】jvm内存模型 45 主内存与工作...

    网管教程 从入门到精通软件篇.txt

    CIN:OS/2改变控制文件用于跟踪INI文件中的变化 CLASS:Java类文件 CLP:Windows 剪贴板文件 CLL:Crick Software Clicker文件 CLS:Visual Basic类文件 CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;...

Global site tag (gtag.js) - Google Analytics