Session的一点理解

来源:互联网 发布:wtaps15aw军裤数据 编辑:程序博客网 时间:2024/06/05 14:37

                       
             Session的一些理解




 1 什么是session:

     

   我们知道,其实大多数web应用程序都离不开session的使用。session,中文经常翻


译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨


号到挂断电话这中间的一系列过程可以称之为一session。

  

               

  

   2  为什么要有session

     

   Session主要是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户


的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在


访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服


务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务


3 有什么

 (1)session是一个容器,可以存放会话过程中的任何对象。


(2)session因为请求(request对象)而产生,同一个会话中多个request共享了一session对象,可以直接从请求中

获取到session对象。



(3)同一客户端机器多次请求同一个资源,session一样吗?一般来说,每次请求都会新创建一个session。


(4)session不会因为浏览器的关闭而删除,session只会通过浏览器的关闭方式去关闭。
 
(5)session存放在哪里:服务器端的内存中。不过session可以通过特殊的方式做持久化管理。


(6)Session创建的时间是:


      一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 

HttpServletRequest.getSession(true)这样的语句时才被创建,但是如果JSP没有显示的使用 <% @page 

session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = 

HttpServletRequest.getSession(true);这也是JSP中隐含的 session对象的来历。


    由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。



(7)Session删除的时间是:


     1)Session超时:超时指的是连续一定时间服务器没有收到该Session所对应客户端的请求,并且这个时间超过了

服务器设置的Session超时的最大时间。


     2)程序调用HttpSession.invalidate()


     3)服务器关闭或服务停止




  注意

   在使用Session对象时,需要注意以下几点:


       1如果客户端浏览器不支持Cookies,Session对象不能发挥作用。


       2 Session对象使用方便,不用声明即可使用。


       3 Session对象占用服务器内存,应避免包含大量数据的对象,这样可以防止服务器崩溃。

 


  总结

     总的来说说,session机制本身并不复杂,然而其实现和配置上的灵活性却使得具体情


况复杂多变。这要求我们不能把仅仅某一次的经验或者某一个浏览器,服务器的经验当


作普遍适用的经验,而是始终需要具体情况具体分析。
  

   1.要使用session必须初始化session_start();

   2.session文件可以放入多个键值对,键不能重复,值可以是基本数据类型,数组和

对象。

   3.要取出对象,则要声明一下类的定义信息

   4.session文件如果在1440秒(默认,可在php.ini里的session.gc_maxfiletime更


改)不被调用则被系统回收

   5.session的key不能是数字,最好是字符串,不然报错
 



0 0
原创粉丝点击