23.JSP 隐式对象

JSP 隐式对象

JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。

JSP所支持的九大隐式对象:

对象描述
requestHttpServletRequest 接口的实例
responseHttpServletResponse 接口的实例
outJspWriter类的实例,用于把结果输出至网页上
sessionHttpSession类的实例
applicationServletContext类的实例,与应用上下文有关
configServletConfig类的实例
pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page类似于Java类中的this关键字
ExceptionException类的对象,代表发生错误的JSP页面中对应的异常对象

request对象

request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。

request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。


response对象

response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。

response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。


out对象

out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。

最初的JspWriter类对象根据页面是否有缓存来进行不同的实例化操作。可以在page指令中使用buffered='false'属性来轻松关闭缓存。

JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过,JspWriter新增了一些专为处理缓存而设计的方法。还有就是,JspWriter类会抛出IOExceptions异常,而PrintWriter不会。

下表列出了我们将会用来输出boolean,char,int,double,String,object等类型数据的重要方法:

方法描述
out.print(dataType dt)输出Type类型的值
out.println(dataType dt)输出Type类型的值然后换行
out.flush()刷新输出流

session对象

session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。

session对象用来跟踪在各个客户端请求间的会话。


application对象

application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例。

这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。

通过向application中添加属性,则所有组成您web应用的JSP文件都能访问到这些属性。


config对象

config对象是 javax.servlet.ServletConfig 类的实例,直接包装了servlet的ServletConfig类的对象。

这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等。

以下是config对象的使用方法,不是很重要,所以不常用:

config.getServletName();

它返回包含在<servlet-name>元素中的servlet名字,注意,<servlet-name>元素在 WEB-INF\web.xml 文件中定义。


pageContext 对象

pageContext对象是javax.servlet.jsp.PageContext 类的实例,用来代表整个JSP页面。

这个对象主要用来访问页面信息,同时过滤掉大部分实现细节。

这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。

pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等。

PageContext类定义了一些字段,包括PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE, APPLICATION_SCOPE。它也提供了40余种方法,有一半继承自javax.servlet.jsp.JspContext 类。

其中一个重要的方法就是removeArribute(),它可接受一个或两个参数。比如,pageContext.removeArribute("attrName")移除四个scope中相关属性,但是下面这种方法只移除特定scope中的相关属性:

pageContext.removeAttribute("attrName", PAGE_SCOPE);

page 对象

这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表。

page 对象就是this对象的同义词。


exception 对象

exception 对象包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Trie总结

Trie 树即为字典树 这个树可以把所有我们要在文本中所查询的前缀都记录下来 当我们拿到一个文本串 需要从里面找出所有前缀串的数目我们就可以用这个结构 拿着我们的文本到这个树里面走一走就得到有多少个前缀了 我们来看 当我们拿到一个前缀 不断地把这个前缀插入到树中 对每…

运用begin和end截取值

程序员在取值的时候会面临截取某一个值&#xff0c;前段时间在大佬那里学习了一个js取值&#xff0c;在<c:forEach items"${potcontestlist}" var"oldcontest1" begin"0" end"3">取值中如果需要截取某个值加begin先取第一个值的…

[程序员面试金典][JAVA][第02.01题][移除重复节点][Set][双指针]

【问题描述】[简单] 编写代码&#xff0c;移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入&#xff1a;[1, 2, 3, 3, 2, 1]输出&#xff1a;[1, 2, 3] 示例2:输入&#xff1a;[1, 1, 1, 1, 2]输出&#xff1a;[1, 2] 提示&#xff1a;链表长度在[0, 20000]范围…

24.JSP 客户端请求

JSP 客户端请求 当浏览器请求一个网页时&#xff0c;它会向网络服务器发送一系列不能被直接读取的信息&#xff0c;因为这些信息是作为HTTP信息头的一部分来传送的。您可以查阅HTTP协议来获得更多的信息。 下表列出了浏览器端信息头的一些重要内容&#xff0c;在以后的网络编…

25.二维码简介

1二维码概述 2二维码 3二维码 二维码概念 二维码发展历史 二维码分类 二维码优缺点 QR code

HDU-1251 统计难题 map写法

#include<cstdio> #include<cstring> #include<cstdlib> #include<string> #include<map> using namespace std;map<string,int>n; char a[12]; int main() {while(*gets(a)){// 不断读入一个串 直到读空就退出来了n[a];for(int istrlen(a…

[剑指offer][JAVA]面试题第[34]题[二叉树中和为某一值的路径][回溯]

【问题描述】[中等] 输入一棵二叉树和一个整数&#xff0c;打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例: 给定如下二叉树&#xff0c;以及目标和 sum 22&#xff0c;5/ \4 8/ / \11 13 4/ \ /…

python --条件判断和语句控制

1、while(斐波纳契数列) python中没有do while a,b 0,1 while b < 1000:print(b,end )a,b b,ab 无线循环 无限循环在服务器上客户端的实时请求非常有用。 #!/usr/bin/python3 var 1 while var 1 : # 表达式永远为 truenum int(input("输入一个数字 :")…

26.idea导入jar包

1点击file---project structure 2点击modules----dependencies 3点击加号 4选中所选资源

CodeForces-887B 技巧DFS

标题 最大不超过3个筛子 让我们从其中任选筛子组合成数据 问我们组不成的最小的数是多少 分析 要模拟把最大3个筛子 选出1,2,3个的情况去组合 我们可以枚举所要选的数的数量 用next_permutation得到这n个数的全排列 这样不论的选几个筛子 都会便利到所有情况 然后在把所有…

CSS3---4.伪元素选择器

a)重点&#xff1a;E::before、E::after i.是一个行内元素&#xff0c;需要转换成块:display:block float:** position: ii.必须添加content,哪怕不设置内容&#xff0c;也需要content:”” iii.E:after、E:before 在旧版本里是伪类&#xff0c;在新版本里是伪元素&#xff…

[Leedcode][JAVA][第41题][缺失的第一个正数][哈希表][数组]

【问题描述】[困难] 给你一个未排序的整数数组&#xff0c;请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0] 输出: 3 示例 2:输入: [3,4,-1,1] 输出: 2 示例 3:输入: [7,8,9,11,12] 输出: 1提示&#xff1a;你的算法的时间复杂度应为O(n)&#xff0c;并且只能使用常…

27.用zxing生成二维码

先在idea里面导入jar包 链接&#xff1a;https://pan.baidu.com/s/1UdorNg8o0A4FsElghqkJyw 提取码&#xff1a;c4bt 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import co…

二、CSS选择器

1.CSS派生选择器 概念&#xff1a;通过依据元素在其位置的上下文关系来定义样式。 实例&#xff1a; <!--index.html--> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><…

[剑指offer][JAVA]面试题第[39]题[数组中出现次数超过一半的数字][HashMap][摩尔投票法]

【问题描述】[简单] 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2限制&#xff1a;1 < 数组长度 < 50000【解答思…

codeforce 884C - Bertown Subway DFS+图论

分析 题意说输入数据有两个规则&#xff1a; 1 每个i只有一个pi表示i站的目的地 i可以等于pi 2 每个pi都指向唯一的一个站i 那么也就是说i指向的目的只有一个且唯一 每个目的由唯一的始发站出来 所以也就是说 图中的每一个点只有一条单向边 那么当我们求最大的数量的可达对…

笔记03

linux 创建连接命令 ln -s 软链接 这是linux中一个非常重要命令&#xff0c;请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接&#xff0c;这个命令最常用的参数是-s, 具体用法是&#xff1a;ln -s 源文件 目标文件。 当 我们需要在不同的目录&#…

[Leedcode][JAVA][第209题][长度最小的子数组][滑动窗口][前缀和][二分查找][双指针]

【问题描述】[中等] 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的连续子数组&#xff0c;并返回其长度。如果不存在符合条件的连续子数组&#xff0c;返回 0。示例: 输入: s 7, nums [2,3,1,2,4,3] 输出: 2 解释: 子数…

UVa-10820 Send a Table 欧拉函数

题意 交表 由于f(k∗x,k∗y)可以由f(x,y)递推出来 让我们求 在x&#xff0c;y都不大于n的情况下 计算最少需要计算多少不同的项 n<50000 分析 那么也就是说两个数由共因子的不必计算 只计算两个数没有共因子的 那么也就是说 每个数我们只需要找到与他互质的个数就可以了…

29使用QRcode方式生成二维码

首先idea导入jar包 链接&#xff1a;https://pan.baidu.com/s/1IZvMHzL2tx1zB2UIbQtiOg 提取码&#xff1a;garc 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import…