jsp-九大内置对象

四种存储数据的容器对象:page、request、session、application

(1)page对象

是java.lang.Object类的一个实例。它指的是JSP实现类的实例,也就是说它是JSP本身,通过这个对象可以对它进行访问。

JSP实现了类对象的一个句柄,只有在JSP页面的范围内才是合法的。

(2)request对象

是ServletRequest的一个实例。

当客户端提交一个请求时,JSP引擎会将客户端的请求信息包装在一个request对象中,请求信息的内容包括请求的标题头(Header),信息(如浏览器的版本信息,语言和编码方式等),请求的方式(如HTTP方法:GET,POST,PUT等),请求的参数名称,参数值和客户端的主机名称等,然后将request对象当作jspService方法的HttpServletRequest参数值,所以我们可以通过这个对象来取得有关客户端的请求信息。request对象的主要方法:

getServerPort() 返回接收请求的服务器端的端口号

getServerName() 返回接收请求的服务器的主机名

getScheme() 返回发出请求的 URL 的机制

getRemoteHost() 返回发送请求的接口程序的完全限定的主机名

getRemoteAddr() 返回发送请求的接口程序的 IP 地址

getRealPath() 返回运用替换规则从虚拟地址中获得的实际地址

getReader() 返回从请求体中读取的文本的缓存数据

getProtocol() 返回请求的协议和版本号

getParameterValues() 返回作为字符串列举的指定参数的值

getParameterName() 返回本次请求的参数名字

getParameter() 返回包含指定参数的单独值的字符串

getlnputStream() 返回在请求体中读取二进制数据的输入流

getContenType() 返回请求实体数据的InternetMedia 类型

getContentLength() 返回请求实体数据的大小

getCharacterEncoding() 返回为请求的输入进行编码的字符集合

getAttribute() 返回请求的给出名称的属性的值

request对象实例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘request.jsp‘ starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body bgcolor="#ffffff">
	<form action="request1.jsp" method="POST">
		姓名:<input type="text" name="username"/><br>
		密码:<input type="password" name="password"/><br>
		<input type="submit" value="提交"/>
		<input type="reset" value="重置"/>
	</form>
 </body>

  </body>
 </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘request1.jsp‘ starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
   <body bgcolor="#ffffff">
		服务器的名称为:<%=request.getServerName()%><br>
		服务器的端口号为:<%=request.getServerPort()%><br>
		用户名为:<%=request.getParameter("username")%><br>
		密码为:<%=request.getParameter("password")%>
  </body>
</html>

(3)session对象

是HttpSession.HttpSession由服务器的程序实现,

提供HTTP服务器和HTTP客户端之间的会话。会话就是在给定时间段内持续进行多路连接和请求。

会话被用来在多页面请求中保持状态和用户认证。

session用来储存访问者的一些特定信息,服务器就是根据session来跟踪这些信息的。

session可以创建访问者信息容器。

session跟踪访问者的访问路径,从中挖掘有用的信息。

session在JSP程序中是一个内置的对象,每一个客户端都有一个session对象用来存放这个客户端相关的数据。

用户在Web应用程序中访问同一页面时,session变量始终存在,当用户在应用程序的页之间跳转时,存储在session对象中的变量也不会清除,当然也可以使用session方法显式地结束一个会话和设置空闲会话的超时期限。session对象的方法:

setAttribute() 设置指定名称为name的属性值value,并将之储存在session对象中

getAttribute() 获取于指定名称name相联系的属性值

getAttributeNames() 返回session对象中存储的每一个属性对象,其结果为一个枚举类的实例

removeValue() 移去和会话应用层数据中指定名称相连的对象

putValue() 将指定的对象和使用指定名称的会话应用层数据相连

isNew() 如果客户端不接受使用session,那么每个请求都会产生一个session对象

invalidate() 使会话无效,并将其从上下文中移出

getValueNames() 返回和会话相连的应用层数据对象的名称

getValue() 返回和应用层数据中指定名称相联系的对象

getSessionContext() 返回会话相连的上下文

getLastAccessTime() 返回客户端上一次发送携带会话账号的时间

getId() 返回会话标识符

getCreationTime() 返回会话创建的时间

(4)application对象

用于在多个程序中保存信息。

可以实现所有用户间共享信息的功能,并可以在Web应用程序运行期间持久地保持数据。

与application相联系的是ServletContext类,通过调用getServletConfig().getContext()方法得到。

一旦创建application对象,该对象将一直保持下去,直到服务器关闭为止。

注意:每个用户的application对象都是相同的,每一个用户都共用同一个application对象。

Application对象主要方法:

getAttribute(String name)     返回由name指定名称的application对象的属性值

getAttributeNames()     返回所有application对象的属性名称。

getInitParameter(String name) 返回由name指定的名字的application对象的某个属性的初始值

getServletInfo() 返回servlet编译器当前版本信息

setAttribute(String name , Object object)     设置指定名字name的application对象的属性值object

application对象实例(常用于显示访问页面的次数。)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘request1.jsp‘ starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
<body>
<%
	int i=0;
	if(application.getAttribute("count")==null){
		application.setAttribute("count",1);
		i=1;
	}
	else
	{
		i=(Integer)application.getAttribute("count")+1;
		application.setAttribute("count",i);
	}
%>
<h1>
	您是第<%=i%>位访问该页面的用户。
</h1>
</body>
</html>

(5)out对象

out对象

用于输出数据,它是javax.servlet.jsp.JspWriter的一个实例。

out对象的范围是page。

如果page指令选择了autoFlush=“true”,那么当出现由于当前的操作不清空缓存而造成缓冲区溢出的情况时,这个类的所有I/O操作便会自动清空缓冲区的内容。

如果autoFlush="false",那么当操作造成了缓冲区溢出时,这个类的所有的I/O操作都将抛出一个IOException异常。

out对象的主要方法:

out.print(boolean)out.println(boolean)输出Boolean类型数据

out.print(char)out.println(char) 输出char类型数据

out.print(char[])out.println(char[])输出char[]类型数据

out.print(doubleout.println(double) 输出double类型数据

out.print(float)out.println(float) 输出float类型数据

out.print(int)out.println(int) 输出int类型数据

out.print(long)out.println(long) 输出long类型数据

out.print(Object)out.println(Object) 输出Object类型数据

out.print(String)out.println(String) 输出String类型数据

out.newLine() 输出一个换行符

out.flush() 输出缓冲区的数据

out.close() 关闭输出流

out.clearBuffer() 清除缓冲区里的数据,并把数据输出到客户端

out.cleat() 清除缓冲区里的数据,但不会把数据输出到客户端

out.getBufferSize() 获得缓冲区的大小

out.getRemaining() 获得缓冲区中没有被占用的空间大小

out.isAutoFlush() 返回布尔值。若AutoFlush为真,则返回“ture”;反之则返回“false”

out对象实例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘out.jsp‘ starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
<%
	out.println("<html>");
	out.println("<head>");
	out.println("<title>");
	out.println("test");
	out.println("</title>");
	out.println("</head>");
	out.println("<body>");
	out.println("<h1>");
	out.println("out对象示例");
	out.println("</h1>");
	out.println("</body>");
	out.println("</html>");
%> 
  </body>
</html>

(6)response对象

被封装成HttpServletResponse接口。

它封装了JSP产生的响应,然后被发送到客户端以响应客户的请求。

和request对象一样,它由容器生成,作为jspService()方法的参数被传入JSP。因为输出流是缓冲的,所以可以设置HTTP状态码和response头。response对象的主要方法:

sendRedirect() 把响应发送到另一个位置进行处理

setHeader() 设定指定名称的HTTP文件头的值

sendError() 向客户端发送错误信息

containsHeader() 判断指定的HTTP文件头是否存在

addHeader() 添加HTTP文件头(Header),将会传送到客户端

addCookie() 添加一个Cookie对象,用来保存客户端的用户信息

setContentType() 设置响应的MIME类型

setContentLength() 设置响应的MIME长度

getCharacterEncoding() 返回用于MIME编码的字符集合

reponse对象实例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘request1.jsp‘ starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
   <body bgcolor="#ffffff">
   		<%-- 服务器的名称为:<%=request.getServerName()%><br>
		服务器的端口号为:<%=request.getServerPort()%><br>
		用户名为:<%=request.getParameter("username")%><br>
		密码为:<%=request.getParameter("password")%>
		--%>
   		<%
   			String name=request.getParameter("username");
   			String pass=request.getParameter("password");
   			if(name!=null&&pass!=null){
   				response.sendRedirect("next.jsp");
   			}else{
   				response.sendRedirect("error.jsp");
   			}
   		 %>
  </body>
</html>

(7)pageContext对象

被封装成javax.servlet.jsp.pageContext接口,它为JSP页面提供包装页面的上下文功能。

管理对属于JSP中特殊可见部分已命名对象的访问。它的创建和初始化都是由容器来完成的,JSP页面中可以直接使用pageContext对象的句柄。

pageContext对象的getXXX()、setXXX()和findXXX()方法用来根据不同的对象范围实现对这些对象的管理。pageContext对象主要是管理对属于JSP特殊可见部分中已经命名对象的访问。pageContext对象常用方法:

forward(String relativeUrlPath) 把页面重定向到另外一个页面或者Servlet组件上

getAttribute(String name,[nt scope]) scope参数是可选的。该方法用来检索一个特定的 已经命名的对象的范围,并且还可以通过调用 getAttributeNamesScope()方法,检索第某个特定 范围的每个属性String字符串名字的枚举。

getException() 返回当前的Exception对象。

getRequest() 返回当前的request对象。

getResponse() 返回当前的Response对象。

getServletConfig() 返回当前页面的servletConfig对象。

getservletContext() 返回servletContext对象。

getSession() 返回当前页面的Session对象。

findAttribute() 方法则是可以用来按照页面、请求、会话以及应用程 序范围的顺序实现对某个已命名属性的搜索。

setAttribute() 用来设置默认页面范围或特定范围之中的已命名对象

removeAttribute()

(8)config对象

被封装成javax.servlet.ServletConfig接口

它表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给初始化的Servlet。

常用的方法有:

getServletContext() 返回执行者的Servlet上下文。

getServletName() 返回Servlet的名称。

getInitParameter(String name) 返回名字为name的初始参数值

getInitParameterNames() 返回JSP文件中的所有参数的名称

(9)exception对象

是java.lang.Throwable类的一个实例。

它指的是运行时的异常,也就是被调用的错误页面的结果,只有在错误页面(在页面指令中要有isErrorPage=ture的页面)中才可以使用。

注意:要使用exception对象,一定要加上isErrorPage="true"这句代码。

时间: 2024-10-26 13:09:22

jsp-九大内置对象的相关文章

黑马程序员【JSP九大内置对象和四个作用域】转载

http://www.cnblogs.com/fanfu1/p/4530980.html JSP九大内置对象和四个作用域 ------- android培训.java培训.期待与您交流! ---------- 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JSP中一共有九个以及四个作用域,在下面的文章中我们会一一讲解. 现在我们先来说一下四个作用域,以便描述各大对象都分属于什么作

jsp九大内置对象及四个作用域【转】

1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理.首先,将获取的 字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象 即可.如下: String textContent=request.getParameter("boy") byte b[]=textContent.get

详解JSP九大内置对象

内置对象:就是在JSP中无需创建就可使用的称为内置对象,它是有容器创建的(如Tomcat.JBoss.weblgic等容器创建). JSP九大内置对象分别为:out.request.response.session.application.pageContext.page.config.exception. 1.out对象 向客户端输出信息,它是JspWriter类的一个实例. 常用的有out.print();或out.println(); 2.request对象 获取客户端传递到服务器的信息.

JSP九大内置对象和四种属性范围解读

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九大内置对象,并对这几大内置对象一个一个的进行分析的解读.内容非常具体,例子都附有代码和执行的结果截图. 本文project下载 一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性.跳转之后无效request:在一次服务请求范围内.server跳转后依旧有效se

零散知识点(面向对象七大设计原则,jdbc--BaseDao,jsp九大内置对象。四个作用域)

面向对象七大设计原则: 1.开闭原则(OCP:Open-Closed Principle)2.里氏替换原则(LSP:Liskov Substitution Principle) 3.单一职责原则(SRP:Single responsibility principle)4.接口隔离原则(ISP:Interface Segregation Principle)5.依赖倒置原则(DIP:Dependence Inversion Principle)6.迪米特法则(LOD:Law of Demeter)

JSP九大内置对象的作用和用法总结(转发)

jsp九大内置对象: 内置对象/作用域(每一种作用域的生命周期是不一样的): 1, application 全局作用域 2, session 会话作用域 3, request 请求作用域 4, pageContext 页面作用域 内置对象 5, response 响应对象 6, out 输出流对象 7, page 当前页面对象的实例 8, exception 异常 9, config ServletConfig/FilterConfig对象 优先级(按照生命周期的长短): application

JSP九大内置对象的作用和用法总结【转】

JSP九大内置对象的作用和用法总结? JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1.request对象javax.servlet.http.HttpServletRequest request对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据.(包括头信息.系统信息.请求方式以及请求参数等).request对 象的作用域

Java Web学习(11):JSP九大内置对象(一)

在学习九大内置对象之前先来看看Web应用程序的请求响应模式. Web应用程序请求响应模式 Web应用程序的请求响应模式图示: 1)用户发送请求(request) 2)服务器给用户响应(response) 生活案例: JSP九大内置对象一览 JSP内置对象是Web容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明,也就是不使用 new关键字就可以使用的内置对象.JSP内置对象也被称为预定义变量. 九大内置对象为: 九个内置对象的简介见下表: out对象 out对象是javax.

五------Jsp九大内置对象。

Jsp九大内置对象,当中最基本的是前五个对象. 5-1 out对象 out对象是JSPWriter类的实例.是向client输出内容经常使用的对象. out对象经常使用的方法例如以下: 1.out.println():向client打印字符串 2,out.clear():清除缓冲区的内容,假设在flush之后调用会抛出异常 3,out.clearBuffer():清除缓冲区的内容,假设在flush之后调用不会抛出异常 4,out.flush():将缓冲区内容输出到client 5,int get

Java Web学习(13):JSP九大内置对象(三)

application对象 什么是application? 服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application 对象都是同一个,直到服务器关闭.但是与session不同的是,所有客户的application对象都是同一个,即所有客户 共享这个内置的application对象. appliaction对象 application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.Se