jsp内置对象

内置对象属性保存范围

(1)page:在JSP中设置一个页的属性范围,必须通过pageContext完成,属性值只能在当前页取得。

(2)request:将属性保存在一次请求范围之内,必须使用服务器跳转jsp:forward/,通过客户端跳转和超链接等无法取得。

(3)session:只保留一个用户的信息,不管什么跳转都可以取得属性,与session有关的任何打开的页面都可以取得session。

(4)application:所有用户都可以取得此信息,此信息在整个服务器上被保留,所有网页窗口都可以取得数据。

注意:这四种属性范围,都是通过pageContext对象来完成的。

设置属性:
public abstract void setAttribute(String name,Object value,int scope)
取得属性:
public abstract Object getAttribute(String name)
其中,scope取值为:

public static final int APPLICATION_SCOPE
public static final int SESSION_SCOPE
public static final int REQUEST_SCOPE
public static final int PAGE_SCOPE

例子:

<%
pageContext.setAttribute(“name”,“内置对象”);
String d= (String) pageContext.getAttribute(“name”);
out.print(d);
%>

三:JSP内置对象的常用方法

(1)request请求对象

request对象属于 Javax. ervlet ServletRequest接口的实例化对象。
【作用】 request对象不但可以用来设置和取得 request范围变量,还可以用来获得客户端请求参数、请求的来源、表头、 cookies等。
【机制】当用户请求一个JSP页面时,JSP页面所在的 Tomcat服务器将用户的请求封装在内置对象 request中。 request内置对象代表了客户端的请求信息,主要用于接收客户端通过HTTP协议传送给服务器端的数据。在客户端的请求中如果有参数,则该对象就有参数列表。

(2)response响应对象

response对象属于Javax.servlethttpHttpservletrEsponse接口的实例化对象
【作用】 response对象用来给客户端传送输出信息、设置标头等。
【机制】 response对象的生命周期由JSP容器自动控制。当服务器向客户端传送数据JSP容器就会创建 response对象,并将请求信息包装到 response对象中。它封装了JSP性的响应,然后被发送到客户端以响应客户的请求,当JSP容器处理完请求后, response
对象就会被销毁。

1)页面跳转的多种方式:

每隔1s刷新一次页面
<%
response.setHeader(“refresh”,“1”);
%>
2秒后跳转到login.jsp
<%
response.setHeader(“refresh”,“2;URL=login.jsp”);
%>

2)response.sendRedirect(“地址”)实现页面跳转(可以携带参数)

<%
response.sendRedirect(“AA.jsp?id=1”);
%>

跳转后地址为:http://localhost:8080/AA.jsp?id=1
这种是客户端跳转,页面跳转时,地址栏改变,不能保存request属性,要通过URL地址重写传递参数。

和<jsp:forward page=""/>相比,后者是服务器跳转,地址栏不改变,无条件跳转,之后的代码不执行,所以在跳转之前释放全部资源 request设置的属性能保留在下一个页面,通过jsp:param传递参数

3)设置Cookie

Cookie是服务器端保存客户端的一组资源。例如,登录时会问用户是否记住密码,或多长时间不用登录,这些功能都是通过 Cookie来实现的。

Cookie是通过服务器端设置到客户端上去的,用response提供的方法实现:
public void addCookie(Cookie cookie)
如果要在服务器端取得 Cookie,用 request提供的方法实现:
public Cookie[] getCookies()
在使用 request对象取得全部 Cookie时,会出现 Jsessionid信息。 Jsessionid表示一个客户端在服务器端的唯一一个标识编号(自动获得 Session对象),服务器端在客户端第一次访问之后,会设置一个默认的 Cookie在客户端上: Jsessionid
默认情况下, Cookie只针对当前浏览器有效,如果需要 Cookie长留在本地计算机上,可以设置 Cookie的保存时间。通过 Cookie对象的 setMaxAge0设置最大保留时间。

Cookie是保存在客户端上的信息,安全性较差,不要把过多的隐秘信息保留在 Cookie中,这样很不安全。

(3)session会话对象

session对象属于Javax.servlet.http.Htpsessio接口的实例化对象。
【作用】 session对象用来表示用户的会话状况,一般用于保存用户的各种信息,直到生命周期(一般为900s)超时或者被人为释放掉为止。
【机制】当一个用户首次访问服务器上的一个JSP页面时,JSP引擎产生一个 session对象,同时分配一个 String类型的ID号,JP引擎同时将这个ID号发送到用户端,存放在Cookie中,这样session对象和用户之间就建立了一一对应的关系。当用户再访问连接该服务器的其他页面时,不再分配给用户新的 Session对象。直到关闭浏览器后,服务器端该用户的 Session对象才取消,与用户的对应关系也一并消失。当重新打开浏览器再连接到该服务器时,服务器会为该用户再创建一个新的 Session对象。

1) session与 Cookie比较
session和 Cookie用于跨网页共享数据。
1> session:将信息以对象形式保存于服务端,记录独有的个人信息,在不同页面中传递。 session对象随会话结束而结束
2> Cookie:将信息以字符串形式保存于客户端,供浏览器与web服务器互通数据用的文本文件,当IE执行时,会在计算机中产生一个 Cookie。 Cookie可以长期保存在客户端。
session比 Cookie更安全,但更占用资源。重要的信息使用 session保存,不重要的用信息通常用 Cookie保存
【开发原则】尽量少向 session中保存信息, session使用了 Cookie的机制,如果 Cookie禁用,则 session也无法使用。

(4)application应用程序对象

application对象属于Javax.servlet.jsp.ServletContext接口的实例化对象。
【作用】application对象用户取得和设置Servlet的相关信息,实现了用户间数据的共享,可存放全局变量
【机制】开了于服务器的启动,知道服务器关闭,这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作。

(5)其他对象

1>pageContext页面上下文对象

<%
request.setAttribute("name","漫步云端");
%>
<%=pageContext.getRequest().getAttribute("name")%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值