HttpSession、PageContext了解

HttpSession:

什么是HttpSession?

HttpSession是由JavaWeb提供的,是用来跟踪会话的类,session是服务器端的对象,保存在服务器上。它是Servlet三大域之一,同样拥有域对象的setAttribute()、getAttribute()、removeAttribute()方法。一般来说,session对象的默认寿命是30分钟。

什么是会话?

一个用户对服务器的多次连贯性的请求,连贯性请求就是用户在多次的请求中没有关闭浏览器。注意的是:一但中途关闭了浏览器,session对象就会立即失效。

如何使用session对象?

在jsp页面中,session对象是内置的,可以直接使用,而在Servlet中,需要获取session对象:

HttpSession session = request.getSession();

HttpSession的原理

每次在创建session的时候,都会有一个sessionID以Cookie的形式在浏览器保存。

1)首先在Cookie中查找有没有sessionID,没有的话,创建Session对象

2)有SessionID的话,在服务器端查找有没有对应的Session对象,有的话不继续创建,没有的话继续创建session对象

3)返回session

HttpSession的其他方法

方法作用
String getId()获取Session的Id

int getMaxInactiveInterval()

返回最大不活动时间,默认30分钟
void invalidate()

立即让Session失效

boolean isNew判断Session是否是新创建

HttpSession的url重写

由于在有的用户当中,浏览器是禁用Cookie的,这时就用到了url重写。若第一次访问该链接,首先给该链接分配一个JSESSIONID,之后访问就不会再次分配。

<a href="jsp或Servlet路径;JSESSIONID=<%=session.getId()%>">链接一</a>

jsp的三大指令:

page:

language:将当前jsp页面编译成何种语言,默认为Java

info:信息,用处不是很大,几乎不用

pageEncoding:指定当前页面的编码格式,在服务器将jsp编译成java文件时需要确认此编码

contentType:表示添加一个响应头,和pageEncoding若只设置一个,另一个与之默认相同,若都没有设置,则默认为ISO编码。

import:进行导包,和java文件中import作用相同

errorPage:若当前页面发生异常,转发至哪个页面(响应码200)

isErrorPage:指定页面是否是处理错误请求的页面(响应码500),设置其值为true时,这个页面可以使用9大内置对象的exception(如同java文件中的异常)

在web.xml中指定错误页面

<error-page>
  	<exception-type>java.lang.RuntimeException</exception-type>
  	<location>/error.jsp</location>
</error-page>
<error-page>
  	<error-code>404</error-code>
  	<location>/error_404.jsp</location>
</error-page>

autoFlush:指定jsp的输出流缓冲区满时,自动刷新,默认为true。

buffer:缓冲区的大小,默认为8kb。

isELIgnored:是否忽略EL表达式,默认为false。

isThreadSafe:是否支持并发访问。

session:当前页面是否支持session这个内置对象。

include:

静态的请求包含,和Servlet中include方法不同的是,它是将两个页面合并最后生成一个java文件,而Servlet中include方法则是生成两个java文件,最后调用而已。

<%@include file="指定包含的文件"%>

taglib:

使用jsp标签库中的函数等

<%@taglib prefix="前缀" uri="标签库的位置"%>

PageContext:

jsp的九大内置对象:

page:当前页面的jsp对象,即this

session:HttpSession的对象

request:HttpServletRequest对象

response:HttpServletResponse对象

out:等同于response.getWriter(),向客户端发送数据

application:ServletContext的对象

config:ServletConfig的对象

pageContext:页面的上下文对象,一顶九

exception:错误页面使用这个对象

常用方法:

方法作用
findAttribute()全局寻找属性值
getAttribute(String name)在PageContext上寻找该属性值
getAttribute(String name, int scope)在指定域对象内寻找该属性值

其他方法:

例:getSession();获取Session对象,其它内置对象都可获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值