tomcat javaweb 开发基础(5)

一:jsp基本语法-内置对象四种应用范围

主要讲解一下:内置对象简介和四种属性范围即

内置对象简介、pageContext范围、request范围、session范围、application范围

首先认识一下: 九个内置对象

NO.
内置对象
类型
1
pageContext
javax.servlet.PageContext
2
request
javax.servlet.http.HttpServletRequest
3
response
javax.servlet.http.HttpServletResponse
4
session
javax.servlet.http.HttpSession
5
application
javax.servlet.ServletContext
6
config
javax.servlet.ServletConfig
7
out
javax.servlet.jsp.JspWriter
8
page
java.lang.Object
9
exception
java.lang.Throwable

 

2. 四种属性范
四种属性范围现在只能了解其概念,而具体的应用,要结合后面的开发模式才能有所了解。所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围。
当前页:一个属性只能在一个页面中取得,跳转到其他的页面无法取得。
一次服务器请求范围:一个页面中设置的属性,只要经过服务器跳转,则跳转之后的页面可以继续使用
一次会话:一个用户设置的内容,只要是与此用户相关的页面都可以访问
上下文中:在整个服务器中设置的属性,所 有人都可以访问。
 
顺便说一下 属性的操作方法
四种属性范围中都将包含以下的属性操作方法。
No.
方法
描述
1
public void setAttribute(String name,Object value)
设置属性
2
public Object getAttribute(String name)
取得属性
3
public void removeAttribute(String name)
删除属性
 
二:内置对象和四种属性的详解加实例
1。page属性范围(pageContext)
在一个页面设置的属性,跳转到其他的页面就无法访问了。
但是在使用page属性范文的时候必须注意的是:虽然习惯上将页面范围的属性称为page范围,但是实际上操作的时候是使用pageContext内置对象完成的。
  pageContext从字面上的定义,可以发现,是表示一个页面的上下文,可以表示一个页面中的所有内容。
范例:
 
pageScopeDemo01.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 此时设置的属性只能够在本页中取得
	pageContext.setAttribute("name","MLDN") ;		// 设置属性
	pageContext.setAttribute("date",new Date()) ;	// 设置属性
%>
<%
	// 取得设置的属性
	String refName = (String)pageContext.getAttribute("name") ;
	Date refDate = (Date)pageContext.getAttribute("date") ;
%>
<h2>姓名:<%=refName%></h2>
<h2>日期:<%=refDate%></h2>

pageScopeDemo02.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 此时设置的属性只能够在本页中取得
	pageContext.setAttribute("name",“COMPUTER") ;		// 设置属性
	pageContext.setAttribute("date",new Date()) ;	// 设置属性
%>
<jsp:forward page="PageScopeDemo03.jsp"/>

pageScopeDemo03.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 取得设置的属性
	String refName = (String)pageContext.getAttribute("name") ;
	Date refDate = (Date)pageContext.getAttribute("date") ;
%>
<h2>姓名:<%=refName%></h2>
<h2>日期:<%=refDate%></h2>

如果现在希望跳转到其他页面之中,依然可以取得,则可以扩大属性范围,使用request属性范围即可。
2。接着讲解:request属性范围
request属性范围表示在一次服务器跳转中有效,只要是服务器跳转,则设置的request属性可以一直传递下去。
范例:
RequestScopeDemo01.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 此时设置的属性只能够在服务器跳转中取得
	request.setAttribute("name","MLDN") ;		// 设置属性
	request.setAttribute("date",new Date()) ;	// 设置属性
%>
<jsp:forward page="RequestScopeDemo02.jsp"/>

RequestScopeDemo02.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<jsp:forward page="RequestScopeDemo03.jsp"/>
 
RequestScopeDemo03.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 取得设置的属性
	String refName = (String)request.getAttribute("name") ;
	Date refDate = (Date)request.getAttribute("date") ;
%>
<h2>姓名:<%=refName%></h2>
<h2>日期:<%=refDate%></h2>
<h3><a href="RequestScopeDemo04.jsp">RequestDemo04</a></h3>

此时,使用了使用超链接跳转,一旦跳转之后,地址栏改变,所以此种跳转页可以称为客户端跳转。
RequestScopeDemo04.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 取得设置的属性
	String refName = (String)request.getAttribute("name") ;
	Date refDate = (Date)request.getAttribute("date") ;
%>
<h2>姓名:<%=refName%></h2>
<h2>日期:<%=refDate%></h2>

3。 session范围
  只要设置的属性不管如何跳转,都可以取得的。当然,session只针对于一个用户。
SessionScopeDemo01.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 此时设置的属性只能够在本页面相关的任何页中取得
	session.setAttribute("name","MLDN") ;		// 设置属性
	session.setAttribute("date",new Date()) ;	// 设置属性
%>
<jsp:forward page="SessionScopeDemo02.jsp"/>

SessionScopeDemo02.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 取得设置的属性
	String refName = (String)session.getAttribute("name") ;
	Date refDate = (Date)session.getAttribute("date") ;
%>
<h2>姓名:<%=refName%></h2>
<h2>日期:<%=refDate%></h2>
<h2><a href="SessionScopeDemo03.jsp">SessionScopeDemo03</a></h2>

SessionScopeDemo03.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 取得设置的属性
	String refName = (String)session.getAttribute("name") ;
	Date refDate = (Date)session.getAttribute("date") ;
%>
<h2>姓名:<%=refName%></h2>
<h2>日期:<%=refDate%></h2>

但是如果此时新开一个浏览器,则肯定无法取得。Session只是保留了一个人的信息。如果一个属性想让所有的用户都可以访问,则可以使用最后一种属性范围:application范围
4。 application属性范围
Application属性范围是在服务器上设置的一个属性,所以一旦设置之后任何用户都可以浏览到此属性。
范例: ApplicationScopeDemo01.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 此时设置的属性任何用户都可以取得
	application.setAttribute("name","MLDN") ;		// 设置属性
	application.setAttribute("date",new Date()) ;	// 设置属性
%>
<h2><a href="ApplicationScopeDemo03.jsp">ApplicationScopeDemo03</a></h2>

ApplicationScopeDemo02.jsp
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.*"%>
<%
	// 取得设置的属性
	String refName = (String)application.getAttribute("name") ;
	Date refDate = (Date)application.getAttribute("date") ;
%>
<h2>姓名:<%=refName%></h2>
<h2>日期:<%=refDate%></h2>

因为属性范围设置在了服务器中,所以只要是连接到此服务器的任意用户都可以取得此属性,当然,如果服务器关闭的话,则此属性肯定消失。
转接六:tomcat  Javaweb开发基础(6)request内置对象的详解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值