《Session 和 JSP学习》
session是什么:
session是一次浏览器和服务器的会话对象,session也是缓存,是内容,是块数据。
因为我们访问网页使用的HTTP协议是无状态的,没有任何关系,快速的。所以我们如果想要关联客户的信息就需要一种办法能够把客户的信息联系在一起,这个方法就是cookie。但是cookie是把信息储存在用户本地,它在一个域名下是全局的。不安全又很容易的被修改。所以session就出现了,它储存在服务器上,通过它关联同一个用户的信息,这样用户在访问不同的页面的时候我们就知道对方是同一个人,而不需要每次无状态的访问都需要用户登录/关联了。
默认情况下一个浏览器独占一个session对象,然后服务器通过sessionID匹配用户。
Session和Cookie的主要区别
- Cookie是把用户的数据写给用户的浏览器。
- Session技术把用户的数据写到用户独占的session中。
- Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。
JSP执行原理
JSP同Servle一样,都运行在Serlet容器中,当用户第一次访问JSP页面时,JSP的页面处理如下图所示
上图所示的JSP执行过程可分为5个步骤,各步骤含义如下:
- 客户向服务器发送JSP页面请求
- 容器接收到请求后检索对应的JSP页面,如果该JSP页面(或被修改后的JSP页面是第一次被请求,则容器将此页面的静态页面(HTML文本)和动态数据(Java脚本)全部转化为Java代码,是JSP文件翻译成一个Java文件,即Servlet
- 容器将翻译后的Servlet源代码编译成字节码文件(.claa),对于Tomcat服务器而言,生成的字节码文件默认存放在<Tomcat安装目录下>\work目录下
- 编译后的字节码文件被加载到容器内部执行,并根据并根据用户的请求生成HTML格式的响应内容
- 容器将响应内容发回客户端
当同一个JSP页面再次被请求时,只要该JSP文件没有发生过改动,容器将直接调用已经装载的字节码文件,而不会再执行翻译和编译的过程,从而大大提高了服务器的性能,过程如下图所示:
在JSP的执行过程中,由JSP为刨花板翻译未Servlet的过程反映了JSP与Servlet的关系!