一.在java开发中,jsp提供了9个内置的对象,这些内置对象将由容器为用户进行实例化,用户直接使用。

这9个内置对象分别为:pageContext,request,response,session,

          application,config,out,page,exception。

常用的为前面5个

  1. page  :  代表该页面本身,也就是 Servlet 中的 this ,能用 page 的地方就可以用 this .即Object page=this

  2. request   : 客户端的请求参数都被封装在该对象里。这是一个常用对象,获取客户端请求参数必须使用该对象。

常用方法:getParameter(String paramName)、getParameterValues(String paramName)、setAttribute(String arrtName,Object      attrValue)

getAttribute(StringattrName) 和 setCharacterEncoding(String env)等。

  3. response:和request相对应,用于服务器响应客户端请求,向客户端输出信息。javax.servlet.HttpServletResponse接口

  4.session  : 该对象代表一次会话。当客户端与站点建立连接时,会话开始;当客户端关闭浏览器时,会话结束。常用方法: getAttribute(String

      attrName)、       setAttribute(String attrName, Object attrValue) 等。

  5.appliction   :该实例代表 JSP 所属的 WEB 应用本身,用于 JSP 页面,或者在 Servlet 之间信息交换。 常用方法有 getAttribute( name , value)、

          setAttribute(  name , value)、getInitParameter( name )  等。

  6.pageContext:  代表 JSP 页面上下文,它相当于页面中所有对象功能的集合,可以访问页面中的共享数据。 常用方法有:getServletContext() 和

       getServletConfig() 等

  7.out  :  JSP 页面输出流,用于输出内容,形成 HTML 页面。同时也能管理应用服务器上的输出缓存区,底层:javax.servlet.jsp.jspWriter抽象类

  8.config: Jsp页面通过jsp容器初始化时被传递的对象,javax.servlet.ServletConfig.在servlet初始化时,jsp引擎通过config向它传递信息,信息可以是属性名

      和属性值匹配的参数,也可以是servletCtext传递的服务器有关信息

  9.exception:代表页面中的异常和错误。只有页面是错误处理页面,page 的isErrorPage 属性为 true 时该对象才可以使用。常用方法 getMessage()  、

       printStrackTrace()等,它是java.lang.Throwable的一个对象

(下面会给常用的对象一些例子)

二.在jsp开发中,可以保存四种数据保存范围:分别为page,request,session,application。

page范围:只在一个页面中保存数据。javax.servlet.jsp.PageContext(抽象类)

request范围:只在一个请求中保存数据。javax.servlet.http.HttpServletRequest(接口)

session范围:在一个会话范围内保存数据,仅供单个用户使用:javax.servlet.http.HttpSession(接口)

application范围:在整个服务器上保存数据,所有用户共享:javax.servlet.ServletContext(接口)

内置对象的使用例子:

1.page

 <%
//设置页面范围数据key->value
pageContext.setAttribute("name","祁高翔");
pageContext.setAttribute("age", 21);
%>
<%
//取值
String name=(String)pageContext.getAttribute("name");
int age=(Integer)pageContext.getAttribute("age");
%>
<font color="blue" size=50px>姓名:<%=name %></font><br/>
<font color="red" size=50px>年龄:<%=age %></font><br/>

2.request

    <%
//设置request范围的数据key->value
request.setAttribute("name", "request祁高翔");
request.setAttribute("age",21);
%>
<jsp:forward page="requestTarget.jsp">
<jsp:param value="" name=""/>
</jsp:forward>

请求另外一个页面

<%
String name=(String)request.getAttribute("name");
int age=(Integer)request.getAttribute("age");
%>
<font size=15px color="gray" face="宋体">已经跳转到Target页面</font><br>
<font color="red" size=5px>姓名: <%=name %></font>
<font color="red" size=5px>年龄: <%=age %></font>

3. session,application同request,只是数据保存的作用范围不同

4.response

4.1自动刷新应用

<%
//每隔一秒刷新一次
response.setHeader("refresh","1");
//获取当前时间
Date date=new Date();
%>
系统的当前时间是: <%=date.toLocaleString()%>

4.2页面重定向(不带参数)属于客户端跳转

response.sendRedirect("index.html");

5.out

<body>
<%
out.println("Goxcheer");
int total=out.getBufferSize();//获取总的缓存区大小
int available=out.getRemaining();//未使用的缓存区大小
int use=total-available;//获取使用的缓存区大小
out.println("总的缓存区大小"+total);
out.println("未使用的缓存区大小"+available);
out.println("获取使用的缓存区大小"+use); %>
</body>

6.exception

注意要包含指令<%@page errorPage="error.jsp" %>

        <%@page isErrorPage="true" %>      

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page errorPage="error.jsp" %>
<!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>
<%
int a=1;
int b=0;
out.write(a/b);
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page isErrorPage="true" %>
<!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>
<%
if(exception!=null){
out.println(exception.getMessage());
}
%>
</body>
</html>

7.pageContext

<body>
<%
pageContext.setAttribute("name0","pageScore");
request.setAttribute("name1", "requestScore");
session.setAttribute("name2", "sessionScore");
application.setAttribute("name3", "applicationScore");
out.println("用pageContext访问页面中的"+pageContext.getAttribute("name0")+"<br>");
out.println("用pageContext访问页面中的"+pageContext.getRequest().getAttribute("name1")+"<br>");
out.println("用pageContext访问页面中的"+pageContext.getSession().getAttribute("name2")+"<br>");
out.println("用pageContext访问页面中的"+pageContext.getServletContext().getAttribute("name3")+"<br>");
%>
</body>

Jsp九大内置对象和4大作用域的更多相关文章

  1. JSP——九大内置对象和其四大作用域

    一.JSP九大内置对象: JSP根据Servlet API 规范提供了某些内置对象,开发者不用事先声明就可以使用标准的变量来访问这些对象. Request:代表的是来自客户端的请求,例如我们在FORM ...

  2. JSP九大内置对象和四个作用域

    JSP九大内置对象和四个作用域 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JS ...

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

    http://www.cnblogs.com/fanfu1/p/4530980.html JSP九大内置对象和四个作用域 ------- android培训.java培训.期待与您交流! ------ ...

  4. JSP九大内置对象及四个作用域

    九大对象: 内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 1-out: javax.servlet.jsp.JspWriter类型,代表输出流的对象.作用 ...

  5. JSP(二):JSP九大内置对象、四个作用域对象

    jsp的九大内置对象:        内置对象:            jsp文件在转译成其对应的Servlet文件的时候自动生成的并声明的对象.我们在jsp页面中直接使用即可.        注意: ...

  6. JSP九大内置对象及四个作用域详解

    一共有九大内置对象: request.response.out.session.application.pageContext.page.config.exception 内置对象(又叫隐含对象),就 ...

  7. jsp九大内置对象、四种作用域、跳转方式

    jsp有四种属性范围: page -> 页面级别,显然只有在一个页面内可用. request -> 请求级别 服务器跳转,一次请求之后消失. session -> 会话级别 客户端跳 ...

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

    1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...

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

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...

随机推荐

  1. Gravitee.io alert 引擎架构

    alert 在我们的实际开发中应用的场景很多,我们需要进行系统状态的查看,以及特殊异常请求的处理 参考架构图 从下图可以看出,还是很方便的,同时支持slack email... 的实时消息通知,而且我 ...

  2. SharePoint Online 怎样让用户只能拥有sub site 的权限

    大家使用SharePoint 可能遇到这样的问题.  我怎样能设置manager 为site 的管理人员.  而我收下不同部门的员工只能访问他自己的sub site呢? 这个设置其实很简单. 1. 简 ...

  3. tomcat源码阅读之BackupManager

    一. 配置: <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOpti ...

  4. webpack 相关插件及作用(表格)

    webpack 相关插件及作用: table th:first-of-type { width: 200px; } table th:nth-of-type(2) { width: 140px; } ...

  5. ssh证书免认证登录

    思路: 客户端私钥存放于客户端,/root/.ssh/id_rsa 将客户端公钥存放于要远程控制服务器上:将客户在公钥id_rsa.pub内容追加到 /root/.ssh/authorized_key ...

  6. bzoj 4660 Crazy Rabbit——LIS解决“相交”限制的思想

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4660 想到一个点可以用它与圆的两个切点表示.并想到可以把切点极角排序,那么就变成环上的一些区 ...

  7. Executor与ExecutorService

    ExecutorService 接口继承了 Executor 接口,是 Executor 的子接口. Executor 接口定义了 execute()方法用来接收一个Runnable接口的对象,而 E ...

  8. spring-配置事务

    使用注解方式配置事务: 一.事物管理 事务是一系列的动作,一旦其中有一个动作出现错误,必须全部回滚,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始的状态,避免出现由于数据不一致而导致的 ...

  9. 读DataSnap源代码(四)

    继续篇中的 function TCustomWebDispatcher.DispatchAction(Request: TWebRequest; Response: TWebResponse): Bo ...

  10. OpenEXR的读取机制

    这还是一篇学习笔记,知识重点还是领会完再敲一遍比较好. OpenEXR通过RgbaInputFile这个接口读取RGBA ONLY图像文件信息,该接口通过dataWindow()方法获取图像边界坐标信 ...