`
南瓜猿
  • 浏览: 45099 次
  • 性别: Icon_minigender_1
  • 来自: 长沙市
社区版块
存档分类
最新评论

JSP九大隐式对象归纳总结

    博客分类:
  • J2EE
阅读更多

 首先理清一下什么是隐式对象:在编写JSP时,不需要声明(创建)就可以直接使用的对象称为隐式对象。

对应的作用如下图所示:


每个对象对应作用域如下所示:

 

内置对象 代表内容                                                                            范围

request 触发服务调用的请求                                                            request

response 对请求的应答                                                                    page

session 为请求的客户创建的session对象                                    session

application 从 servlet 配置对象获得的 servlet 上下文                    application

          (如在getServletConfig() ,getContext()的调用中)                                                                                                                                                               

out 向输出流写入内容的对象                                                             page

pageContext 本 JSP 的页面上下文                                             page

page 实现处理本页当前请求的类的实例                                    page

config 本 JSP 的 ServletConfig                                                     page

exception 表示JSP页面运行时产生的异常                                      Page

代码示例:

 一:比较pagecontext,request,session,application作用域:

index1.jsp关键代码:

 

<%
	//存储
	pageContext.setAttribute("a", 1);
	request.setAttribute("request", 1);
	session.setAttribute("session", 1);
	application.setAttribute("application", 1);	
	//在本页获取
	Object obj = pageContext.getAttribute("a");
	Object obj1 = request.getAttribute("request");
	Object obj2 = session.getAttribute("session");
	Object obj3 = application.getAttribute("application");
%>
	pageContext:<%=obj %> <br/>
	request:<%=obj1 %><br/>
	session:<%=obj2 %><br/>
	application:<%=obj3 %><br/>

 运行:

 


 可以看出,在本页中四个参数都能得到数据,下面我们跳转到另一个界面进行测试

在index1.jsp中增加如下代码:

 

<%
	request.getRequestDispatcher("index2.jsp").forward(request, response);

	//response.sendRedirect("index2.jsp");

%>

 

 

index2.jsp:

 

	<%
		//在转发后的页获取
		Object obj = pageContext.getAttribute("pageContext");
		Object obj1 = request.getAttribute("request");
		Object obj2 = session.getAttribute("session");
		Object obj3 = application.getAttribute("application");
	%>
	
	这个是index2.jsp的数据:<br/>
	pageContext:<%=obj %> <br/>
	request:<%=obj1 %><br/>
	session:<%=obj2 %><br/>
	application:<%=obj3 %><br/>

 这里注意到index1.jsp增加的代码中有两种跳转方法,一种是request.getRequestDispatcher() 另一种是response.sendRedirect(),两种分别运行效果如下(先后顺序):


可以得出结论: request.getRequestDispatcher()是请求转发,前后页面共享一个request ; 

response.sendRedirect()是重新定向,前后页面不是一个request。

并且,pagecontext只对本页有效,request在一个请求内有效。

下面测试session的作用域:

index3.jsp:

	<%
		//在转发后的页获取
		Object obj = pageContext.getAttribute("pageContext");
		Object obj1 = request.getAttribute("request");
		Object obj2 = session.getAttribute("session");
		Object obj3 = application.getAttribute("application");
	%>
	
	这个是index33333333.jsp的数据:<br/>
	pageContext:<%=obj %> <br/>
	request:<%=obj1 %><br/>
	session:<%=obj2 %><br/>
	application:<%=obj3 %><br/>

 打开IE浏览器,运行index3.jsp,与之前谷歌浏览器的index3.jsp运行结果对比:



 可以看到,session的作用域仅限于同一个浏览器(一个浏览器对应一个session),即对应一次会话。

然而application依旧是存在的,这里我们重启服务器再运行index3.jsp:


 可以发现,现在application也没了,由此可以得出结论,application的作用域最广,为服务器启动到关闭的整段时间, 在这个作用域内设置的信息可以被所有应用程序使用。 

二:分析page,config,exception,out

out应该不用分析了...就是在Jsp里的输出流。。想必都懂..

首先是page,这里编写index4.jsp:

	<%
		//由于JSP本身就是一个Servlet
		HttpJspPage servlet = (HttpJspPage) page;
		String str = servlet.getServletInfo();
	
		String str2 = this.getServletName();
		
	%>
	<%=str%>  <%=str2%>

 运行结果:



可以看到输出了当前JSP页面的配置信息,由此可以得出结论page相当于servlet中的this对象。

 

然后测试config

在web.xml配置文件中加入:

<servlet>
  	<servlet-name>aa</servlet-name>
  	<jsp-file>/index5.jsp</jsp-file>
  	<init-param>
  		<param-name>className</param-name>
  		<param-value>oracle.jdbc.driver.OracleDriver</param-value>
  	</init-param>
  	<init-param>
  		<param-name>url</param-name>
  		<param-value>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</param-value>
  	</init-param>
  	<init-param>
  		<param-name>user</param-name>
  		<param-value>scott</param-value>
  	</init-param>
  		<init-param>
  		<param-name>pwd</param-name>
  		<param-value>tiger</param-value>
  	</init-param>
  </servlet>

 运行时URL改成:http://127.0.0.1:8080/ysdx/aa

运行结果:


 可以看到Config为Jsp配置信息

最后是exception:

新建一个index6.jsp

	<%
		int a = 1, b = 0;
	%>
	<%=a / b%>
	<a href="index7.jsp">这是一个超连接</a>

 可以看到,里面发生了除0错误

新建error.jsp:

你访问的页面飞走了!!

<%
String msg = exception.getMessage();
%>

<%=msg %>

 运行inde6.jsp:

 
 可以看到报错页面是error.jsp,由此可见exception的作用是异常处理。

 

学习完感觉所有语言都有种触类旁通的意思,所以还是耐心学精一门语言,学其他语言都会容易上手。
 

 

 

 

  • 大小: 162.9 KB
  • 大小: 69.5 KB
  • 大小: 76.1 KB
  • 大小: 76.5 KB
  • 大小: 108.2 KB
  • 大小: 105.7 KB
  • 大小: 56.8 KB
  • 大小: 82.6 KB
  • 大小: 65.1 KB
2
3
分享到:
评论
1 楼 qq_24665727 2016-03-02  
厉害 ,学长

相关推荐

    jsp的九大隐式对象详解

    "JSP 九大隐式对象详解" JSP 九大隐式对象是指在 JSP 编程中可以直接使用的九个内置对象,这九个对象分别是:request、response、session、application、out、pageContext、config、page、exception。下面对每个...

    JSP 隐式对象

    JSP九大隐式对象学习,比较基础,适用入门人群

    Jsp的隐式对象实例教程文档

    本教程将详细介绍JSP的九个主要隐式对象及其用途。 1. **request对象**: `HttpServletRequest` 类的实例,用于处理客户端的请求信息。例如,你可以通过`request.getParameter()`获取表单参数,`request....

    03-JSP隐式对象.ppt

    03-JSP隐式对象.ppt

    jsp学习笔记

    jsp隐式对象是jsp技术的核心之一,jsp隐式对象是指在jsp页面中可以直接使用的java对象,这些对象都是jsp引擎提供的,jsp隐式对象共有九大对象,分别是: 1. request对象 2. response对象 3. pageContext对象 4. ...

    EL表达式 隐式对象

    ### EL表达式 隐式对象 #### 一、EL表达式基础 ##### 1. 语法结构 EL表达式采用特定的语法结构来进行数据的提取和操作,其基本格式为 `${expression}`。这里的 `expression` 可以是变量、方法调用或其他逻辑表达式...

    JSP 作用域与隐式对象

    JSP 作用域与隐式对象[SP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似...

    JavaWeb程序设计入门课件JSP隐式对象共8页.pdf

    本入门课件聚焦于JSP的隐式对象,这些预定义的对象极大地简化了开发流程,提高了开发效率。 1. JSP隐式对象: - application:全局应用程序范围的对象,所有用户共享,常用来存储在整个应用生命周期内都需要访问的...

    Java Web程序设计入门课件-JSP隐式对象.pptx

    本课程主要关注的是JSP中的一个重要特性——隐式对象。这些隐式对象是由JSP容器自动创建并提供给开发者,以简化开发流程,提高效率。 首先,我们要了解什么是JSP隐式对象。在JSP2.0规范中,预定义了9个隐式对象,...

    TP4 JSP 隐式对象TP4

    TP4 JSP 隐式对象TP4

    JavaWeb开发技术-JSP隐式对象.pptx

    JSP隐式对象是JSP提供的一组预定义的对象,可以直接在JSP页面中使用,无需显式声明,极大地简化了开发工作。以下是对JSP隐式对象的详细说明: 1. **out对象**: `out` 对象是 `javax.servlet.jsp.JspWriter` 类的...

    完整版Java JSP web开发教程 07_JSP隐式对象(共32页).ppt

    本教程中的第七章重点介绍了JSP的隐式对象,这些对象是Web容器自动创建并为JSP页面提供的便捷引用,无需通过`new`关键字实例化。 1. **JSP 脚本元素** - JSP脚本元素包括`&lt;jsp:scriptlet&gt;`、`&lt;jsp:declaration&gt;`、...

    JSP中隐式对象用法实例

    在JSP页面中,有一些特殊的对象被称为隐式对象。这些对象被自动创建,并且可以直接在JSP页面中使用,无需额外声明或实例化。常见的JSP隐式对象包括request、response、session、application、out、pageContext等。...

    JSP运行原理和九大隐式对象说明

    JSP运行原理和九大隐式对象说明,需要的朋友可以参考一下

    Java Web程序设计入门课件-EL隐式对象.pptx

    总结来说,Java Web程序设计中的EL隐式对象极大地简化了开发者的工作,使他们能够更高效地处理Web应用程序中的数据。从请求参数到会话管理,再到Cookie操作,EL隐式对象提供了一套完整的工具集,帮助开发者构建功能...

    JSP 内置对象:request 对象.pptx

    request 对象是 JSP 中九个可供使用的隐式对象之一,它属于输入/输出对象,主要用于处理客户端传送给服务器端的请求参数。 request 对象提供了多种方法来获取请求参数,例如: 1. String getParameter(String name...

    JavaWeb程序设计入门课件EL隐式对象共6页.pdf

    EL隐式对象是预定义的一组变量,可以直接在JSP页面中使用,无需显式声明,极大地提高了开发效率。 1. EL基础:EL是JSP2.0引入的一种轻量级、声明式的脚本语言,它的主要任务是查询和显示存储在作用域范围内的Java...

Global site tag (gtag.js) - Google Analytics