`

JSP九大内置对象总结(一)

阅读更多

JSP(Java Server Page)是当今一项非常重要的动态Web开发技术,它充分继承了Java的众多优势,包括一次编写到处运行的承诺、高效的性能以及强大的可扩展能力。

 

一、概述

JSP内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显示声明即可使用。不过,在对JSP内置对象作进一步说明之前,首先来了解一下JSP内置对象的作用范围。

 

二、内置对象作用范围(Scope)

所谓内置对象的作用范围,是指每个内置对象的某个实例在多长的时间和多大的范围内有效,也即在什么样的范围内可以有效地访问同一个对象实例。在JSP中,定义了4种作用范围,分别是:Application、Session、Page和Request,它们代表了对象各自的“生命周期”。下面分别对其做介绍说明。

(一)Application Scope

1、作用范围:起始于服务器开始运行,application对象被创建之时;终止于服务器关闭之时。

2、说明:(1)任何页面在任何时候都可以访问application scope的对象。只要服务器还在正常运行;

(2)但另一方面,由于服务器自始自终都需要在内存中保存application对象的实例,因此application对象占据的资源是巨大的,一旦application对象数量过大,服务器运行效率也会大大降低。

(二)Session Scope

1、作用范围:在客户端同服务器相连接的时间,直到其连接中断为止。每个用户请求访问服务器时一般就会创建一个session对象,待用户终止退出则该session对象消失,即用户请求访问服务器时session对象开始生效,用户断开退出时session对象失效。

session的退出分为两种:

     (1)服务器对session对象有默认的时间限定,如果超过该时间限制,session会自动失效而不管用户是否已经终止连接,这主要是出于安全性的考虑。

      (2)使用java语句主动退出。

2、说明:有一个普遍的错误理解,就是认为关闭浏览器就关闭了session。正是由于关闭浏览器并不等于关闭了session,才会出现设置session有效时间的解决方法。

(三)Request Scope

1、作用范围:用户的一次请求过程。

2、说明:通常情况下,一次请求过程在用户访问到用户指定的页面后就结束了,但某些情况下,一次请求可能涉及到多个页面。

3、实例

// index.jsp
<%@ page contentType="text/html;charset=GB2312"%>
<%
request.setAttribute("username","july");
%>
<jsp:forward page="page1.jsp"/>

 

// page1.jsp
<%@ page contentType="text/html;charset=GB2312"%>
<% 
out.println("属性username的值为:"+request.getAttribute("username"));
%>
<a href="page2.jsp" target=_blank>page2.jsp</a>

 

// page2.jsp
<%@ page contentType="text/html;charset=GB2312"%>
<% 
out.println("属性username的值为:"+request.getAttribute("username"));
%>

 

 

 

(四)Page Scope

1、作用范围:只能够获取本页的数据。

2、说明:如果把上例中的page1.jsp和page2.jsp页面中的request对象全部替换成pageContext,然后重新执行,会发现连page2.jsp也无法读到username的属性。

 

三、JSP内置对象

(一)application对象

1、作用范围:application scope

2、说明:

(1)对于一个网站中所有的JSP页面,application对象只有一个。它们操作的是同一个application对象。

(2)注意:不要设置过多的application有效对象,造成服务器的负担。另外,不同的网站,使用不同的application对象。

3、实例:

(1)实现计数器 

application是一个全局变量,所有访问同一服务器的客户都可访问application对象。在counter.jsp中,我们应用application实现一个计数器来证明这一特点。

 

// application.jsp
<%@ page language="java" contentType="text/html;charset=GB2312"%>
<html>
<head>
<title>网站计数器</title>
</head>
<body>
<%
	if(application.getAttribute("count")==null){
		application.setAttribute("count","1");
		out.println("欢迎,您是第1位访客!");
	}else{
		int i = Integer.parseInt((String)application.getAttribute("count"));
		i++;
		application.setAttribute("count",String.valueOf(i));
		out.println("欢迎,您是第"+i+"位访客!");
	}
%>
<hr />
</body>
</html> 

 

(2)获取服务器系统相关信息

application对象负责提供应用程序在服务器中运行时的一些全局信息,因此我们可以利用application来获取一些系统相关信息。

 

<%@ page contentType="text/html;charset=GB2312" %>
<html>
<head>
<title>application应用</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body>
<div align="center">
<h4 align="left">服务器信息:
  <%
  out.println(application.getServerInfo());
  %></h4>
  <h4 align="left">Java Servlet API 主版本号:
  <%
  out.println(application.getMajorVersion());
  %></h4>
  <h4 align="left">Java Servlet API 次版本号: 
    <%
  out.println(application.getMinorVersion());
  %></h4>
<h4 align="left"> 
本网页的真实路径: 
    <%out.println(application.getRealPath("index.jsp"));%>
  </h4>
 <%
     String str1="系统已提供了信息";
     application.log(str1);
 %>

  <h4 align="left">*注意: </h4>
  <p align="left">本网页已向日志文件中添加了如下信息:“ 
    <%out.println(str1);%>”</p>
</div>
</body>
</html>
 

 (二)config对象

1、说明:config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数及服务器的有关信息。

2、常用方法:

(1)getServletContext()方法

 (2)getInitParameter()方法

 (3)getInitParameterNames()方法

3、主要是对web.xml的数据进行读取。实际上是通过getServletContext()方法获得application对象,再根据application对象获得。

4、实例

(1)在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>
  <servlet-mapping>
  	<servlet-name>aa</servlet-name>
  	<url-pattern>/aa</url-pattern>
  </servlet-mapping>

 创建一个index5.jsp,通过config对象获取xml文件中的数据并输出

<body>
	这个是index5.jsp!

	<%
	String className = config.getInitParameter("className");
	String url = config.getInitParameter("url");
	String user = config.getInitParameter("user");
	String pwd = config.getInitParameter("pwd");
%>


<%=className %> <br/>
<%=url %> <br/>
<%=user %> <br/>
<%=pwd %> <br/>
</body>

  

(三)exception对象

1、说明:当JSP页面发生错误时,会产生异常,而exception就是用来针对异常做出相应处理的对象,要使用该对象,必须在page命令中设定<%@ page isErrorPage="true"%>,否则编译会出现错误。

2、实例

 

// testError.jsp
<%@ page errorPage="handleError.jsp"%>
<%@ page contentType="text/html;charset=GB2312"%>
<html>
<body>
<%
      int i = 0;
      int j = 1/i;
%>
</body>
</html>
 
// handleError.jsp
<%@ page isErrorPage="true" contentType="text/html;charset=GB2312"%>
<html>
<body>
<h2>出错处理</h2>
在处理请求时发生了错误!
<p>
错误原因如下: <%= exception.getMessage() %>.
</body>
</html>
// 注意:没有isErrorPage=“true” ,则exception对象不会自动生成
 

 

(四)out对象

1、作用:主要用于向浏览器端输出数据。

2、out实际上是带有缓冲特性的PrinterWriter,可以称之为JspWriter。缓冲区容量是可以设置的,甚至也可以关闭,只要通过page指令的buffer属性就可以达到此目的。 

3、JSP文件代码中的文件内容会自动生成out.print()或者out.println()输出。

4、实例

 

<%@ page contentType="text/html;charset=gbk"%>
<%
int BufferSize=out.getBufferSize();
int Available=out.getRemaining();
%>
<%
String[] str = new String[5];
str[0] = "out";
str[1] = "输出";
out.println("<html>");
out.println("<head>");
out.println("<title>使用out对象输出HTML表格</title>");
out.println("</head>");
out.println("<body>");
out.println("<table>");
out.println("<tr>");
out.println("<td>BufferSize:</td>");
out.println("<td>"+BufferSize+ "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>Available:</td>");
out.println("<td>"+Available+ "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>数组序列</td>");
out.println("<td>数组值</td>");
out.println("</tr>");
for(int i=0;i<2;i++){
	out.println("<tr>");
	out.println("<td>str["+i+"]</td>");
	out.println("<td>"+str[i]+"</td>");
	out.println("</tr>");
}
BufferSize=out.getBufferSize();
Available=out.getRemaining();
out.println("<tr>");
out.println("<td>BufferSize:</td>");
out.println("<td>"+BufferSize+ "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>Available:</td>");
out.println("<td>"+Available+ "</td>");
out.println("</tr>");
out.println("</table>");
out.println("<body>");
out.println("</html>");
out.close();
%>

 效果:

 


 

(五)page对象

1、page对象指代JSP页面本身、代表了正在运行的由JSP文件产生的类对象。page对象很少在JSP中使用。

2、page对象在jsp生成的对应java文件中(转换过程后续会提到),可以用this代替。

 

关于内置对象的总结,先写这么多,之后会更新第二篇,关于request、response、pageContext和session的使用方法。

 

 谢谢您的关注和阅读,文章不当之处还请您不吝赐教~~~微笑微笑微笑

 

  • 大小: 27.4 KB
  • 大小: 27 KB
  • 大小: 931 Bytes
分享到:
评论

相关推荐

    JSP九大内置对象

    jsp九大内置对象是学习jsp必须了解的内容,所以现在总结一下,以便以后学习中可以使用。

    JSP内置对象实验报告.doc

    JSP内置对象实验报告

    Jsp内置对象session总结

    Jsp内置对象session总结:详细介绍,Session机制,原理,生命周期h和Session的主要方法等。

    JSP内置对象归纳与总结

    JSP内置对象的归纳与总结,内置对象概述 out对象 request对象 response对象 session对象 application对象 pageContext对象 exception对象

    JSP 9大内置对象学习总结

    JSP9大内置对象学习总结 JSP内置9大对象 request常用方法 response session与客户端取得会话 application实现网页计数器

    jsp内置对象 jsp的几个内置的对象图解

    jsp内置对象 有关jsp的一些内置的对象的总结

    jsp内置对象ppt总结

    jsp基础的学习资料,适合初学者,ppt形式,可以很容易学会jsp jsp基础的学习资料,适合初学者

    jsp的9大内置和4大作用域对象精心总结

    jsp的9大内置和4大作用域对象精心总结,如果里面有错误和不足之处希望各位多多指正!!!

    jsp内置对象及常用函数总结

    jsp中9个内置对象的总结,以及每个对象的常用函数的作用和用法。

    实验三 内置对象

    jsp 实验三 内置对象

    JSP 简单总结

    JSP简单总结,内置对象的简单使用,基础概念概括的还算不错

    JSP与Servlet 技术总结

    6. JSP内置对象 5 7. JSP内置对象及其作用 5 8. 获取页面参数 5 9. 重定向(forward与sendRedirect)区别 6 10. JSP和Servlet的区别 7 11. Cookie学习 7 12. Session学习 9 Servlet技术总结 9 1. Servlet生命...

    jsp 9个内置对象

    今天笔试了JSP很多题 回来总结,顺便和大家分享

    jsp内置对象1_详细书介绍

    有关jsp的内之对象的详细介绍和总结,这是我总结的ppt。

    JSP脚本小总结

    JSP知识小总结一.指令元素二.脚本元素三.标准动作元素四.内置对象五.JavaBeans的使用六.JSP中的文件操作 七.JSP运行原理剖析

    JSP_WEB实验报告

    JSP实验环境组建、简单JSP应用、JSP内置对象的应用、Servlet的应用、JSP访问数据库的应用

    JSP基础 课程知识点总结论文

    JSP基础课程知识点总结,多采用表格对比/归纳总结。...包含知识点内容:JSP简介、JSP语法、Tag文件与Tag标记、JSP内置对象、JSP与Java bean、Java Servlet基础、MVC模式、JSP中使用数据库、JSP中的文件操作。

    JSP的四种作用范围总结

    总结Jsp中四种作用范围,应用方法总结

    java面试题自己总结的ssh较多

    3.Servlet中没有内置对象,jsp中的内置对象都是必须通过HttpServletRequest对象。HttpServletretSponse对象以及HttpServlet对象得到。 4.Jsp是servlet的一种简化,使用jsp只需要完成程序员需要输出到客户端的内容,...

    吴天雄--JavaWeb完整笔记.doc

    模块二:使用eclipse和idea快速开发jsp(idea和tomcat的相关配置、eclipse创建web项目、jsp页面元素、jsp九大内置对象、四大作用域对象、解决get/post请求乱码问题、cookie和session详解、请求重定向);模块三:...

Global site tag (gtag.js) - Google Analytics