一.在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. MySQL聚合函数与数据分组

    我们最常需要的是汇总数据而不是把他们实际检索出来 确定表中行数(或满足某个条件或包含某个特定值的行数) 确定表中行组的和 找出表列(或所有行或特定列)的最大值,最小值和平均值 聚集函数是运行在行组上, ...

  2. Airtest Project的探索和使用

    Airtest使用参考博文: https://testerhome.com/topics/12391 1. 安装Python 3 2. 安装pip: 安装方法参考另外一篇随笔 pip3部署: C:\U ...

  3. 如何利用 Chrome 来模拟移动网络来调试 FastAdmin 网站

    如何利用 Chrome 来模拟移动网络来高度 FastAdmin 网站 因为目前大多数都在开发移动类的网页,所以客户端的速度下载速度要也考虑. 虽然都已经 4G 了,但还是要看看在网络质量很差的情况 ...

  4. css 兼容性问题,整理

    css 兼容性问题,整理: css 兼容性问题 说明 <input type="number"> 在chrome下,是不能输入非数字的字符的:但是在火狐63.0.3(2 ...

  5. django csrf使用教程,解决Forbidden (403)CSRF verification failed. Request aborted.

    Django版本号:1.11.15 django中post请求报错:Forbidden (403)CSRF verification failed. Request aborted. HelpReas ...

  6. 配置中心Client端

    配置中心Client端 1.在Order工程中的Order-Server模块的pom.xml中增加 <dependency> <groupId>org.springframew ...

  7. VS2015和SVN合作

    SVN就是版本控制管理工具. 插件这里,还是遇到了一些问题,我知道有插件了,但是忽略了开始的版本问题,按时插件安装过程中没有出现意外,故以为“插件安装成功”,岂不知此“成功”非彼“成功”.由于我用的是 ...

  8. php exec返回状态为1

    之前在用到php exec 时 总是保存,返回状态1,那这时怎么排查呢 exec('ls 2>&1', $output, $return_val); print_r($output); ...

  9. 服务发现:Zookeeper vs etcd vs Consul 参考自http://dockone.io/article/667

    服务发现:Zookeeper vs etcd vs Consul [编者的话]本文对比了Zookeeper.etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考. 如果使用预 ...

  10. shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory --引用自http://blog.csdn.net/xiaaiwu/article/details/49126777

    windows下编辑然后上传到linux系统里执行的..sh文件的格式为dos格式.而linux只能执行格式为unix格式的脚本. 我们可以通过vi编辑器来查看文件的format格式.步骤如下: 1. ...