JSP笔记(二)

session

session表示客户端与服务器的一次回话

Web中的session指的是用户在浏览器某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间

从以上定义中可以看到,session实际上是一个特定的时间概念

在服务器的内存中保存着不同的用户的session

Session对象

Session对象是一个JSP内置对象

Session对象在第一个JSP页面被装载时自动创建,完成会话期管理

从一个客户打开浏览器并连接服务器开始,到客户关闭浏览器离开这个服务器结束,称为一个会话。

一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。

Session对象时HttpSession类的实例

Session对象常用方法如下:

long getCreationTime():返回session创建时间

public String getId()返回session创建时JSP引擎为它舍得唯一ID号

public Object setAttribute(String name,Object value)使用指定名称将对象绑定到此会话。

public Object getAttribute(String name)返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在改名成下,则返回null

String[] getValueNames()返回一个包含此session中所有可用属性的数组

int  getMaxInactiveInterval()返回两次请求间隔多长时间此session被取消(单位秒)

session的生命周期

创建:

当客户端第一次访问某个JSP或者Servlet的时候,服务器会为当前会话创建一个SessionId,每次客户端向服务器端发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验。

活动:

某次会话当中通过超链接打开的新页面属于同一次会话。

只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一个项目资源时属于同一次会话。(当前会话全部关闭,重新访问统一资源时,会创建新的会话。但是原来的会话还存在,只是这个旧的session存在于服务端,只不过再也没有客户端携带它交予服务端校验。)

销毁:

Session的销毁只有三种方式:

1、 调用了session.invalidate()方法

2、 Session过期(超时)

3、 服务器重启

Tomcat默认session超时时间是30分钟

设置session超时有两种方式:

1、 session.setInactiveInterval(时间)//单位十秒

2、 在web.xml配置

<session-config>

<session-timeout>

10

</session-timeout>

</session-config>//单位是分钟

application对象

application对象实现了用户间数据的共享,可存放全局变量

application开始于服务器的启动,终止于服务器的关闭

在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作。

在任何地方对application对象属性的操作,都将影响到其他用户对此的访问。

服务器的启动和关闭决定了application对象的生命

application对象时ServletContext类的实例。

application对象常用方法:

public void setAttribute(String name,Object value) 使用指定名称将对象绑定到此会话。

Public Object getAttribute(String name)返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null。

Enumeration getAttributeNames()返回所有可用属性名的枚举

String getServerInfo()返回JSP(Servlet)引擎名及版本号

Page对象

Page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。常用方法如下:

Class getClass()返回此Object的类

Int hashCode()返回此Object的hash码

boolean equals(Object obj)判断此Object是否与指定对象相等

void copy(Object obj)把此Object拷贝到指定的Object对象中

Object clone()克隆此Object对象

String toString()把此Object对象那个转换为String对象

void notify()唤醒一个等待的线程

void notifyAll()唤醒所有等待的线程

void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒

void wait()是一个线程等待直到被唤醒

pageContext对象

pageContext对象提供了对JSP页面内所有的对象以及名字空间的访问

pageContext对象可以访问到本页所在的session,也可以取本页面所在的application的某一属性值

pageContext对象相当于页面中所有功能的集大成者

pageContext对象的本类名也叫pageContext

常用方法:

JspWriter getOut()返回当前客户端响应使用的JspWriter流(out)

HttpSession getSession()返回当前页面中的HttpSession对象(session)

Object getPage()返回当前页面的Object对象(page)

ServletRequest getRequest() 返回当前页的ServletRequest对象( request)

ServletResponse getResponse()返回当前页的ServletResponse对象(response)

void setAttribute(String name,Object attribute)设置某属性的作用范围

Object getAttribute(String name,int scope)在指定范围取属性的值

int getAttributeScope(String name)返回某属性的作用范围

void forward(String relativeUrPath)使当前页面重导到另一页面

void include(String relativeUrPath)在当前位置包含另一文件

Config对象

Config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象),常用方法如下:

ServletContext getServletContext()返回含有服务器有关信息的ServletContext对象。

String getInitParameter(String name)返回初始化参数的值

Enumeration getInitParameterNames() 返回Servlet初始化所需要所有参数的枚举

Exception对象

Exception对象是一个异常对象,当一个页面在运行过程中发生了异常,就会产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象,常用方法如下:

String getMessage()返回描述异常的消息

String toString()返回关于异常的简短描述信息

Void printStackTrace()显示异常及其栈轨迹

Throwable FillInStackTrace()重写异常的执行栈轨迹

时间: 2024-09-29 23:30:48

JSP笔记(二)的相关文章

Android学习笔记二

17. 在ContentProvider中定义的getType()方法是定义URI的内容类型. 18. SQLiteDatabase类中的insert/delete/update/query方法其实也挺好用的,我在EquipmentProvider类中做了实现 19. Android专门有个单元测试项目(Android Test Project),在这个项目中,可以新建一个继承AndroidTestCase类的具体测试类来单元测试某个功能.我新建了一个AndroidTestProject项目,在

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

Cookie学习笔记二:Cookie实例

今天说说刚刚学到的两个Cookie的最经典应用:自动登录和购物车设置 一:自动登录 需要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp处理登录信息:如果有Cookie,则自动登录,否则创建输入信息的对象的Cookie,下次登录可以直接登录,但是我们在这里给Cookie设置一个最大保存时间30s,即登录30s后会自动退回到登陆页面,具体代码如下: login.jsp: <%@ page language="java" con

老男孩培训视频听课笔记二(在51cto上听的)

centos 5.8 文本安装过程    引导采用默认,引导不用设置密码    网络配置,根据实际情况配置,网关是网络出口的地址,一般为wlan出口的路由器的地址或者是代理服务器的内网IP    DNS简单解说图:      主机名--时区--root密码    选择自定义系统安装包--最小化(安全方便工作,建议安装以下的组)      ·base-- 基础      ·editors-编辑器      ·development librarays--开发库      ·development

《卓有成效的程序员》----读书笔记二

六大方面对比Launchy和TypeAndRun(TAR) 对于快速启动工具,很多人都有自己的偏好,多次听到朋友介绍Launchy的好,虽然自己一直在使用着TAR,还是克制不住对于好软件的渴求,下载Launchy进行试用.很多软件都是有一个试用期的,也许新的软件确实不错,但是你习惯了以前使用的那个软件.今天就比较客观的将Launchy和TAR进行一下对比,从界面.上手速度到功能.自定义,以及软件的稳定性.占用资源进行详细的比较. [界面美观]Launchy:毫无疑问这是它的强项.1.0正式版自带

Caliburn.Micro学习笔记(二)----Actions

Caliburn.Micro学习笔记(二)----Actions 上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 我们还是从做例子开始 demo的源码下载在文章的最后 例子1.无参数方法调用 点击button把textBox输入的文本弹出来 如果textbox里没有文本button不可点,看一下效果图 看一下前台代码 <Stac

《逻辑思维简易入门》(第2版) 阅读笔记二

<逻辑思维简易入门>(第2版) 阅读笔记二 本周阅读的是<逻辑思维简易入门>的第三章,也就是说,本书的第一部分就已经读完了. 第三章.信念的优点 信念和负信念是人们在接受一个事物时一种心理态度,延伸来说也就是对事物的认知态度.因为我们在研究 逻辑思维的时候,都有一个前提:“以正常情况以及说话者真诚”,所以有人如果对于一件事物不做回应,我们可以认为这是一种既不相信,也不怀疑的的态度. 信念的优缺点有很多,在书中主要介绍了下面几种: 1.准确性 好的信念实在准确的表达事实,同样真的信念

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Emacs 笔记二

Emacs 笔记二 Table of Contents 1. 前言 2. emacs基本操作(常用快捷键) 3. emacs模式讲解 4. emacs缓冲区 5. org mode 5.1. 列表 5.2. 快键键 5.3. 内嵌元素(插入代码什么的) 5.4. 表格 1 前言 最近在学着写博客,发现MarkDown真乃神器,于是去找了很多markdown的工具,发现作业部落 最好的那个,而无意间又发现了org-mode火爆到极致 非常被人推崇,其实作业部落 已经是能很完美的满足我的需求了,但是

《Programming in Lua 3》读书笔记(二十二)

日期:2014.8.6 PartⅣ The C API 26 Extending Your Application 使用Lua很重要的一点是用来做配置语言.配合主语言做一些功能的配置. 26.1 The Basics 有的时候程序需要配置一些功能信息,很多时候可能有许多别的方法比用lua做配置要更简单:如使用环境变量或者读取文件,读取文件涉及到文件的解析.如果使用Lua进行配置的话,相当于用lua文件替代了要读取的如csv.txt文件等. 使用Lua进行配置的时候,就需要使用Lua API去控制