Jsp九大内置对象和4大作用域
一.在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大作用域的更多相关文章
- JSP——九大内置对象和其四大作用域
一.JSP九大内置对象: JSP根据Servlet API 规范提供了某些内置对象,开发者不用事先声明就可以使用标准的变量来访问这些对象. Request:代表的是来自客户端的请求,例如我们在FORM ...
- JSP九大内置对象和四个作用域
JSP九大内置对象和四个作用域 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JS ...
- 黑马程序员【JSP九大内置对象和四个作用域】转载
http://www.cnblogs.com/fanfu1/p/4530980.html JSP九大内置对象和四个作用域 ------- android培训.java培训.期待与您交流! ------ ...
- JSP九大内置对象及四个作用域
九大对象: 内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 1-out: javax.servlet.jsp.JspWriter类型,代表输出流的对象.作用 ...
- JSP(二):JSP九大内置对象、四个作用域对象
jsp的九大内置对象: 内置对象: jsp文件在转译成其对应的Servlet文件的时候自动生成的并声明的对象.我们在jsp页面中直接使用即可. 注意: ...
- JSP九大内置对象及四个作用域详解
一共有九大内置对象: request.response.out.session.application.pageContext.page.config.exception 内置对象(又叫隐含对象),就 ...
- jsp九大内置对象、四种作用域、跳转方式
jsp有四种属性范围: page -> 页面级别,显然只有在一个页面内可用. request -> 请求级别 服务器跳转,一次请求之后消失. session -> 会话级别 客户端跳 ...
- jsp九大内置对象及四个作用域【转】
1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...
- JSP九大内置对象和四种属性范围解读
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...
随机推荐
- Ubuntu安装时怎样分区
1./swap交换分区,一般为你机器内存的两倍.少于这个容量.系统无法进入休眠. 实质是硬盘上的交换空间而非分区.所以没有格式,默认休眠将数据储存于此 能够取消(如不用swap必须再设定方可休眠)-- ...
- 数据格式转换(一)PDF转换技术
PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式. 这样的文件格式与操作系统平台无关.这一特点使它成为在Internet上进行电子文档发行 ...
- 算法导论 (Thomas H.Cormen / Charles E.Leiserson / Ronald L.Rivest / Clifford Stein 著)
第一部分 基础知识 第1章 算法在计算中的作用 第2章 算法基础 第3章 函数的增长 第4章 分治策略 第5章 概率分析和随机算法 第二部分 排序和顺序统计量 第6章 堆排序 第7章 快速排序 第8章 ...
- java自学总结
经过了一段时间的java学习,感觉自己在编程方面还只是一个初学者,感觉学会了c,在学c++的时候就是以c为基础,java应该也是以c或者c++为基础,但是并非如此,java和c++虽然有一些相似之处, ...
- RCC 和 RTC
RCC是STM32的时钟控制器,可开启或关闭各总线的时钟,在使用各外设功能必须先开启其对应的时钟,没有这个时钟内部的各器件就不能运行.RTC是STM32内部集成的一个简单的时钟(计时用),如果不用就关 ...
- mysql之 slow log 慢查询日志
一. 相关参数: • slow_query_log ◦ 是否开启慢查询日志 • slow_query_log_file ◦ 慢查询日志文件名, 在 my.cnf 我们已经定义为slow.log,默认是 ...
- 浏览器多进程架构、浏览器内核多线程、js单线程、GUI 渲染线程 与 JavaScript引擎线程互斥 原理
浏览器是多进程的,有一个主控进程,以及每一个tab页面都会新开一个进程(某些情况下多个tab会合并进程). 出处:http://www.imweb.io/topic/58e3bfa845e5c1346 ...
- 【转】车和家CEO李想回顾创业20年:站在更高层才能看到低层问题
明天就要上班了,写一下我创业20年经历的五个楼层,每一层的认知回过头来看都是天壤之别,以及无比的幸运.只有到了更高一层,你才可以更好的看到低楼层的问题.希望对你的工作有所帮助. 一层楼,生为一个普通的 ...
- Hive Shell 命令详解
Hive服务介绍 Hive默认提供的cli(shell)服务,如果需要启动其他服务,那么需要service参数来启动其他服务,比如thrift服务.metastore服务等.可以通过命令hive -- ...
- [转CSDN多篇文章]WEB 3D SVG CAD 矢量 几种实现方案
WEB 3D SVG CAD 矢量 几种实现方案 原创 2014年10月24日 08:34:11 标签: WEB3D / CADSVG / 矢量 2665 一.全部自己开发,从底层开始 VML+SVG ...