欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP中的九大隐式对象

程序员文章站 2022-05-11 23:49:09
...
隐式对象 :在编写jsp时,不需要声明(创建)就可以直接使用的对象。
JSP中有九大隐式对象,分别为:  pageContext,request,session,application,page,config,out,response,exception

一.用来数据共享的对象:
pageContext: 在本页共享数据
request: 在同一次请求响应过程*享数据
session: 在同一个会话*享数据
application: 在应用程序运行期间共享数据
例:
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
  pageContext.setAttribute("pageContext",1);
  request.setAttribute("request",1);
  session.setAttribute("session",1);
  application.setAttribute("application",1);
  
  
Object obj=pageContext.getAttribute("pageContext");
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/>

</body>
</html>

index2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<% 
//在转发后的页获取
Object obj=pageContext.getAttribute("pageContext");
Object obj1=request.getAttribute("request");
Object obj2=session.getAttribute("session");
Object obj3=application.getAttribute("application");
%>

   这个是index2的数据<br/>
   pageContext:<%=obj %> <br/>
	request:<%=obj1 %><br/>
	session:<%=obj2 %><br/>
	application:<%=obj3 %><br/>

</body>
</html>


1 index.jsp运行的结果为:
    pageContext:null
    request:1
    session:1
    application:1

2 将从index.jsp转到index2.jsp,添加代码
request.getRequestDispatcher("index2.jsp").forward(request,response);
因为不是在一个页面中,所以
结果为:这个是index2的数据
    pageContext:null
    request:1
    session:1
    application:1
3 但将index中的转发改为forward转发,即不是在同一个请求中,即为:response.sendRedirect("index2.jsp");
结果为:这个是index2的数据
     pageContext:null
     request:null
     session:1
     application:1

4 将浏览器关闭,即不在同一个会话中时
结果为:这个是index2的数据
     pageContext:null
     request:null
     session:null
     application:1
5 结束程序,结果都为null


二.和Servlet有关的对象:
page: 指jsp页面本身
config: 用来存储jsp配置信息的对象

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
这个是index5.jsp!<br/>

	<%
	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>
</html>

在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!
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@127.0.0.1:1521:ORCL
scott
tiger

三.与输入输出有关的对象:
out 向浏览器输出信息
request:包含请求信息
response:包含的响应信息

四.和异常处理有关的对象
exception 用来处理异常的对象
定义错误页面
<%@ page isErrorPage="true" %>

如果页面需要处理异常
<%@ page errorPage="error.jsp"%>
相关标签: jsp