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中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...
随机推荐
- NSNull floatValue intValue 找不到指定方法解决方式
最近遇到一个问题: 因为后台人员对于接口数据没有做空值处理.导致client接收到的有些数据为空(NSNull),而针对此类数据恰好client的存储结构为int和float类型.类型 ...
- 算法(第4版) (Robert Sedgewick / Kevin Wayne 著)
第1章 基础 第2章 排序 第3章 查找 第4章 图 第5章 字符串 第1章 基础 public class Bag<T> : IEnumerable<T> { ]; ; pu ...
- nginx+php windows安装配置
https://blog.csdn.net/zjiang1994/article/details/72876193 https://blog.csdn.net/bruce_wang_janet/art ...
- oracle之 反向键索引
反向键索引是一种B-tree索引,它在保持列顺序的同时,物理地改变每个索引键的字节(反向键索引除了ROWID和still之外,反转每个索引列的字节).例如,如果索引键为20,如果在十六进制中存储为这个 ...
- 安装ES
ES环境搭建 1.创建用户组2.目录授权3.安装jdk4.vi /etc/sysctl.confvm.map_maxcount=65535vm.swappiness=5 sysctl -p 生效5.修 ...
- EntityFrameworkCore操作记录
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.0.3 Add-Migration Init U ...
- golang channel几点总结
golang提倡使用通讯来共享数据,而不是通过共享数据来通讯.channel就是golang这种方式的体现. Channel 在golang中有两种channel:带缓存的和不带缓存. 带缓存的cha ...
- zabbix moniter
zabbix moniter http://blog.csdn.net/xiegh2014/article/category/6945291/2
- Django 模板语法
模板语法之变量 变量在HTML中的表示:{{var_name}} 变量取值:句点符 "." views: def index(request): import datetime s ...
- XBOX360更新游戏封皮(FSD自制系统)
第一步,请记下上图左下角的IP地址第二步,打开电脑IE浏览器,输入“第二步”你记下的IP地址“回车”然后,就如下图所示了. 输入账号:f3http 密码:f3http 进入,然后你就进到你的360 F ...