文档章节

JavaWeb Item11: Session会话管理

_
 _Roger_
发布于 2016/01/26 12:19
字数 529
阅读 25
收藏 1

一、Session简单介绍

  在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

二、Session和Cookie的主要区别

  • Cookie是把用户的数据写给用户的浏览器。

  • Session技术把用户的数据写到用户独占的session中。

  • Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。

三、session实现原理

3.1、服务器是如何实现一个session为一个用户浏览器服务的?

  服务器创建session出来后,会把session的id号,以cookie的形式回写给客户机,这样,只要客户机的浏览器不关,再去访问服务器时,都会带着session的id号去,服务器发现客户机浏览器带session id过来了,就会使用内存中与之对应的session为之服务。

    第一次访问时,服务器会创建一个新的session,并且把session的Id以cookie的形式发送给客户端浏览器。

四、浏览器禁用Cookie后的session处理

解决方案:URL重写

  • response.encodeRedirectURL(java.lang.String url) 用于对sendRedirect方法后的url地址进行重写。 

  • response.encodeURL(java.lang.String url)用于对表单action和超链接的url地址进行重写

eg:

<!--修改前:-->
<a href=“maillogin.jsp“> 
<!--修改后:--> 
<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>

五、session对象的创建和销毁时机

创建:利用session.isNew()判断session是不是新创建的。

手动销毁:利用session.invalidate()

session对象默认30分钟没有使用,则服务器会自动销毁session,在web.xml文件中可以手工配置session的失效时间。

<!-- 设置Session的有效时间:以分钟为单位-->
    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>


本文转载自:http://www.cnblogs.com/xdp-gacl/tag/JavaWeb%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/

共有 人打赏支持
_
粉丝 29
博文 82
码字总数 39915
作品 0
武汉
在Java开源王国中自由翱翔

在如今的Java领域,各种新技术,新工具层出不穷,一方面,每一种技术都会不停的升级换代,另一方面,还会不断涌现出新的技术和工具。Java世界就像小时候玩的万花筒,尽管实质上只是由几个普通...

孙卫琴
2007/02/10
0
0
JavaWeb Item10: Cookie会话管理

一、会话的概念   会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。   有状态会话:一个同学来过教室,下次再来...

_Roger_
2016/01/26
18
0
javaweb如何模块化

把一个项目分成多个模块,各模块应该打成什么包呢?jar?对于spring+mybatis+springmvc整合的项目来说,如果打成jar包,应该只能将模块写到service层,不能到控制器,因为当有多个带有控制器...

眼镜遮住了眼
2016/12/27
574
8
JavaWeb中的Session、SessionListener、在线人数统计

JavaWeb中的Session 在JavaWeb中使用HttpSession(以下简称session)对象来表示一个会话。 正在装载数据…… Session的创建(代表会话周期的开始):第一次调用request.getSession()方法时,...

雪中漫步
2010/03/29
0
1
补习系列-springboot中的几种scope

目标 了解HTTP 请求/响应头及常见的属性; 了解如何使用SpringBoot处理头信息 ; 了解如何使用SpringBoot处理Cookie ; 学会如何对 Session 进行读写; 了解如何在不同请求间传递 flash参数 ...

美码师
07/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTML显示json字符串并且进行格式化

通过pre标签进行格式化展示,使用JSON.stringify()方法转换。 代码如下:   <html> <head> <title>HTML显示json字符串并且进行格式化</title> </head> <body> <p id="show_p">{ "name": "B......

writeademo
1分钟前
0
0
LNMP——php-fpm

php-fpm的pool •vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加include并删除我们之前www池子 • include = etc/php-fpm.d/*.conf • mkdir /usr/local/php/etc/php-fpm.d/ • ......

chencheng-linux
4分钟前
0
0
fixed在微信下的BUG

最近在一个项目中,碰到了一个问题,是属于微信内部的问题,或者说,是属于APP内部的问题,它的根源来自于fixed定位以及-webkit-overflow-scrolling的组合使用,虽然现在还无法理解问题的根源...

Jack088
8分钟前
0
0
sentry错误日志收集

安装方式 : 1 docker 2 Python 安装docker,使用命令 sudo yum -y install docker-io 启动docker 使用命令service docker start docker换源sudo curl -sSL https://get.daocloud.io/daotoo......

猿神出窍
10分钟前
0
0
input输入框的限制

1、键入时候保存数字, 问题:多个输入框的时候,连续输入非数字,导致删除的非数字出现 onkeyup="this.value=this.value.replace(/\D/g,'')" 2、onkeypress,返回true和false来设置是否键入...

大美琴
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部