JSP内置对象详解 常用方法

news2024/11/20 15:14:08

目录

out

request

response

session

application

exception

page

config

pageContext

JSP内置对象的作用域


JSP内置对象是在JSP运行环境中已定义好的对象,可在JSP页面的脚本部分直接使用。

out对象

out 为输出流对象,主要用于向客户端输出流进行操作,可将有关信息发送到客户端的浏览器。

此外,通过out 对象,还可对输出缓存区与输出流进行相应的控制和管理。

out 是向客户端输出内容时所使用的常用对象,它其实是 javax.servlet.jsp.JspWriter 类的实例,具有 page 作用域。

JspWriter 类包含了 java.io.PrintWriter 类中的大部分方法,并新增了一些专为处理缓存而设计的方法,会抛出 IOException 异常(而PrintWriter不会)。

out对象常用方法

方法说明
void print(String str)输出数据
void println(String str)输出数据并换行
void newLine()输出一个换行符
int getBufferSize()获取缓存区大小
int getRemaining()获取缓存区剩余空间的大小
void flush()输出缓存区中的数据
void clear()清除缓存区中的数据,并关闭对客户端的输出流
void clearBuffer()清除缓存区的数据
void close()输出缓存区的数据,并关闭对客户端的输出流
boolean isAutoFlush()

缓冲区满时是否自动清空。该方法返回布尔值(由page指令的autoFlush属性确定)。若返回值为true, 则表示缓存区满了会自动清除;若为false,则表示缓冲区满时不会自动清除,而是抛出异常。

request对象

request 对象为请求对象,其中封装了客户端的所有信息,如请求的来源、标头、Cookies 以及与与请求相关的参数值等。为获取请求的有关信息(如用户在form表单中所填写的数据等),可调用request对象的有关方法。

request 对象是 javax.servlet.http.HttpServletRequest 类的实例,具有 request 作用域,代表的是来自客户端的请求(如 form 表单中写的信息等),是最常用的对象之一。每当客户端请求一个JSP 页面时,JSP引擎就会创建一个新的 request 对象来代表这个请求。

request对象常用方法

方法说明
String getServerName()获取接受请求的服务器的主机名
int getServerPort()获取服务器接受请求所用的端口号
String getRemoteHost()获取发送请求所用的端口号
String getRemoteAddr()获取发送请求的客户端的IP地址
int getRemoteUser()获取客户端发送请求所用的端口号
String getRemoteUser()获取发送请求的客户端的用户名
String getQueryString()获取查询字符串
String getRequestURI()获取请求去掉host的部分路径(不包含查询字符串)
String getRequestURL()获取请求的全路径
String getRealPath(String path)获取指定虚拟路径的真实路径
String getParameter(String name)获取指定参数的值(字符串)
String[] getParameterValue(String name)获取指定参数的所有值
Enumeration getParameterNames()获取所有参数名的枚举
Cookies[] getCookies()获取与请求有关的Cookie对象(Cookie 数组)
Map getParameterMap()获取请求参数的Map
Object getAttribute(String name)获取指定属性的值。若不存在,则返回null
Enumeration getAttributeNames()获取所有可用属性名的枚举
String getHeader(String name)获取指定标头的信息
Enumeration getHeaders(String name)获取指定标头的信息的枚举
int getIntHeader(String name)获取指定整数类型标头的信息
long getDateHeader(String name)获取指定日期类型标头的信息
Enumeration getHeaderNames()获取所有标头名的枚举
String getProtocol()获取客户端向服务器传送数据所使用的协议名
String getScheme()获取请求所使用的协议名
String getMethod()获取客户端向服务器端传送数据的方法(GET,POST)
String getCharacterEncoding()获取请求的字符编码方式
String getServletPath()获取客户端所请求的文件的路径
String getContextPath()获取客户端所请求的文件的路径
int getContentLength()获取请求体的长度(字节数)
String getContentType()获取客户端请求的 MIME 类型。若无法得到该请求的 MIME 类型,则返回 -1
ServletInputStream getInputStream()获取请求的输入流
BufferedReader getReader()获取解码后的请求体
HttpSession getSession(Boolean creat)获取与当前客户端请求相关联的 HttpSeesion 对象。若参数 creat 为true,或不指定参数 creat,且 session 对象已经存在,则直接返回,否则创建一个新的 session 对象并返回;若 creat 为false,且 session 对象已经存在,则直接返回,否则返回null
void getRequestedSessionId获取 session 对象的ID号
void setAttribute(String name, Object obj)设置指定属性值
void setCharacterEncoding(String encoding)设置字符编码形式

response对象

response 对象为响应对象,用于对客户端的请求进行动态回应,可向客户端发送数据,如Cookies、时间戳、HTTP标头信息、HTTP状态码等。在实际应用中,response 对象主要用于将JSP数据处理后的结果传回到客户端。

response 对象是 javax.servlet.http.HttpServletResponse 类的实例,具有 page 作用域。当服务器创建 request 对象时,会同时创建用于响应该客户端的response对象。

response对象的常用方法

方法说明
void addHeader(String name, String value)添加指定标头。若指定标头已存在,则覆盖其值。
void setHeader(String name, String value)设置指定标头的值
boolean containsHeader(String name)判断指定标头是否存在
void sendRedirect(String url)重定向(跳转)到指定的页面(URL)
String encodeRedirectURL(String url)对用于重定向的URL进行编码
String encodeURL(String url)对URL进行编码
void setCharacterEncoding(String encoding)设置响应的字符编码类型
String getCharacterEncoding()获取响应的字符类型
void setContentType(String type)设置响应的MIME类型
String getContentType()获取响应的MIME类型
void addCookie(Cookie cookie)添加指定的Cookie对象(用于保存客户端的用户信息)
int getBuffersize()获取缓存区的大小
void setBuffersize(int size)设置缓存区的大小
void flushBuffer()将当前缓存区的内容强制发送到客户端
void reset()清空缓存区中的所有内容
void resetBuffer()清空缓存区中除了标头与状态信息以外的所有内容
ServletOutputStream getOutputStream()获取客户端的输出流对象
PrintWriter getWriter()获取输出流对应的Writer对象
void setContentLength(int length)设置响应的BODY长度
void setStatus(int sc)设置状态码(status code)
void sendError(int sc)发送状态码
void sendError(int sc, String msg)发送状态码和状态信息
void addDateHeader(String name, long date)添加指定的日期类型标头
void addHeader(String name, String value)添加指定的字符串类型标头
void addIntHeader(String name, int value)添加指定的整数类型标头
void setDateHeader(String name, long date)设定指定日期类型标头的值
void setHeader(String name, String value)设置指定字符串类型标头的值
void setIntHeader(String name, int value)设置指定整数类型标头的值

session对象

session 对象为会话对象,该对象封装了当前用户会话的有关信息。借助于 seesion 对象,可对各个客户端请求期间的会话进行跟踪。在实际应用中,通常用 session 对象储存用户在访问各个页面期间所产生的有关信息,并在页面之间进行分享。

session 对象是 javax.servlet.http.HttpSession 类的实例,具有 session 作用域。当一个用户首次访问服务器上的一个 JSP 页面时,JSP引擎就会产生一个 session 对象,同时为该对象分配一个 String 类型的ID号,并将该 ID 号发送到客户端,存放在用户的 Cookie 中。当该用户再次访问连接服务器的其他页面的时,或从服务器连接到其他服务器再返回该服务器时,JSP 引擎将继续使用此前创建的同一个 session 对象。待用户关闭浏览器(即终止与服务器端的会话)后,服务器端才将该用户的 session 对象销毁。

session对象常用方法

方法说明
String getId()获取 session 对象的ID号
boolean isNew()判断是否为新的 session 对象。新的 session 对象是指该 session 对象已由服务器产生,但尚未客户端使用过
void setMaxInactiveInterval(int interval)设置 session 对象的有效时间或生存时间(单位为秒),即会话期间客户端两次请求的最长时间间隔。超过此时间,session 对象将会失效。若为 0 或负值,则表示该 session 对象永远不会过期
void getMaxInactiveInterval(int interval)获取 session 对象的有效时间或生存时间
void setAttribute(String name, Object obj)在 session 中设置指定的属性及其值
Object getAttribute(String name)获取指定的属性值。若不存在则,返回null
Enumeration getAttributeNames()获取 session 中所有属性名的枚举
void removeAttribute(String name)删除 session 中指定的属性
void invalidate()注销当前的 session 对象,并删除其中的所有属性
long getCreationTime()获取 session 对象的创建时间,单位为毫秒,由 1970年1月1日零时算起。
long getLastAccessedTime()返回当前会话中客户端最后一次发出请求的时间,单位为毫秒,由 1970年1月1日零时算起。

application对象

application 对象为应用对象,负责提供 Web 应用程序在服务器运行期间的某些全局性信息。与 session 对象不同,application对象针对 Web 应用程序的所用用户,并由所有用户所共享(seesion 对象只针对各个不同的用户,是由各个用户所独享的)。

application 对象是 javax.servlet.ServletContext 类的实例(其实是包装了 Servlet 的 ServletContext 类的对象),具有 application 作用域。当 Web 服务器启动一个 Web 应用程序时,就产生了一个 application 对象。当关闭 Web 服务器或停止 Web 应用程序时,该 application 对象才会被销毁。各个 Web 应用程序的 application 对象是不相同的。

application对象常用方法

方法说明
void setAttribute(String name, Object obj)设置指定的属性及其其值
Object getAttribute(String name)获取指定的属性值
Enumeration getAttributeNames()获取所有的属性名的枚举
void removeAttribute(String name)删除指定的属性
Object getInitParameter(String name)获取指定的属性的初始值。若该属性不在,则返回null
String getServerInfo()获取JSP引擎的名称及版本号
int getMajorVersion()获取服务器支持的Servlet API的主要版本号
int getMinorVersion()获取服务器支持的Servlet API的次要版本号
String getRealPath(String path)获取指定虚拟路径的真实路径(绝对路径)
ServletContext getContext(String uripath)获取指定 web application 的application 对象
String getMimeType(String file)获取指定文件的 MIME 类型
URL getResourse(String path)获取指定资源(文件或目录)的URL对象
InputStream getResourseAsStream(String path)获取指定资源的输入流
RequestDispather getRequestDispatcher(String uripath)获取指定资源的RequestDispatcher对象
Servlet getServlet(String name)获取指定名称的Servlet
Enumeration getServlets()获取所有Servlet的枚举
Enumeration getServletNames()获取所有Servlet名称的枚举
void log(String msg)将指定的信息写入log文件中
void log(String name, Throwable throwable)将stack trace(栈轨迹)及所产生的Throwable异常写入日志文件
void log(Exception exception, String msg)将指定异常的stack trace及错误信息写入日志

exception对象

exception 对象为异常对象,其中封装了从某个 JSP 页面中所抛出的异常信息,常用于处理 JSP 页面在执行时发生的错误或异常。

exception 对象是 javax.lang.Throwable 类的实例,具有 page 作用域。当一个 JSP 页面在运行过程中出现异常时,就会产生一个 exception 对象。不过,如果一个页面要使用exception对象,就必须将页面 page 指令的 isErroePage 属性设置为true,否则无法进行编译。通常,可使用 page 指令指定某一页面为专门的错误处理页面,从而将有关页面的异常或错误都集中到该页面中进行处理。

exception对象常用方法

方法说明
String getMessage()获取异常的描述信息(字符串)
String getLocalizedMessage()获取本地化语言的异常描述信息(字符串)
String toString()获取关于异常的简短描述信息(字符串)
void printStackTrace(PrintWriter s)输出异常的栈轨迹
Throwable FillInStackTrace()重写异常的栈轨迹

page对象

page 对象为页面对象,是页面实例的引用,代表 JSP 页面本身,即 JSP 页面被转译后的 Servlet.。

page 对象是 java.lang.Object 类的实例,具有page作用域。从本质上看,page 对象是一个包含当前 Servelt 接口引用的变量,相当于 this 变量的一个别名。通过 page 对象,可以调用 Servlet 类所定义的方法。

page对象常用方法

方法说明
class getClass()获取当前对象的类
int hashCode()获取当前对象的哈希代码
boolean equals(Object obj)判断当前对象是否与指定对象相等
void copy(Object obj)把当前对象复制到指定的对象中
Object clone()克隆当前对象
String toString()获取当前对象的一个字符串
void notify()唤醒一个等待的线程
void notifyAll()唤醒所有等待的线程
void wait(int timeout)使一个线程处于等待状态,直到指定的超时时间结束或被唤醒
void wait()使一个线程处于等待状态,直到被唤醒

config对象

config 对象为配置对象,主要用于获取 Servlet 或者 JSp 引擎的初始化参数。

config 对象是 javax.servlet.ServletConfig 类的实例,具有 page 作用域。config 对象包含了初始化参数以及一些实用方法,可为实用 web.xml 问价的服务器程序与 JSP 页面在其环境中设置初始化参数。

config对象常用方法

方法说明
String getInitParameter(String name)获取指定Servlet初始化参数的值
Enumeration getInitParameterNames()获取所有Servlet初始化参数的枚举
String getServletName()获取Servlet的名称
ServeltContext getServeltContext()获取Servlet上下文(ServletContext)

pageContext对象

pageContext 对象为页面上下文对象,主要用于访问页面的有关信息。其实,pageContext 对象是整个 JSP 页面的代表,相当于页面中的所有功能的集大成者,可实现对页面内所有对象的访问。

pageContext 对象是 javax.servlet.jsp.PageContext 类的实例,具有 page 作用域,其创建与初始化均有容器完成。PageContext 类定义了一些范围常量,包括 PAGE——SCOPE,REQUEST_SCOPE,SESSION_SCOPE 与 APPLICATION_SCOPE,分别表示 page 范围,request 范围,seesion 范围 与 application 范围。

在 pageContext 对象中,包含了传递给 JSP 页面的指令信息,存储了 request 对象与 response 对象的引用。此外,out对象,session 对象, application 对象与 config 对象也可以从 pageContext 对象中导出。

pageContext对象常用方法

方法说明
Exception getException()获取当前页的exception对象
JspWriter getOut()获取当前页的out对象
Object getPage()获取当前页的page对象
ServletRequest getRequest()获取当前页的request对象
ServletResponse getResponse()获取当前页的response对象
ServletConfig getServletConfg()获取当前页的config对象
ServletContext getServletContext()获取当前页的application对象
HttpSession getSession()获取当前页的session对象
void setAttribute(String name, Object obj)设置指定的属性及其值
void setAttribute(String name, Object obj, int scope)在指定范围设置指定的属性及其值
public Object getAttribute(String name)获取指定的属性的值,若无,返回null
Object findAttribute(String name)按顺序在 page,request,session,application范围内找并返回指定的属性值
void removeAttribute(String name)z在所有范围内删除指定的属性
void removeAttribute(Strinf name, int scope)在指定范围内删除指定的属性
int getAttributeScope(String name)获取指定属性的作用范围
Enumeration getAattributeNamesInScope(int scope)获取指定范围内的属性名枚举
void release()释放pageContext对象所占用的资源
void forward(String relativeUrlPath)将页面重定向到指定的地址
void include(String relativeUrlPath)在当前位置包含指定的文件

JSP内置对象的作用域

前面我们提到的具有page 作用域,具有 request 作用域等 ,其实是指JSP内置对象的作用域,

作用域是指对象的范围,JSP 的内置对象的作用一共有 4 个,分别是:

page、request、session、application

page 作⽤域:对应的内置对象是 pageContext、config、exception、page、response、out。

request 作⽤域:对应的内置对象是 request。

session 作⽤域:对应的内置对象是 session。

application 作⽤域:对应的内置对象是 application。

作用域的范围大小

page < request < session < application

page 只在当前页面有效。

request 在⼀次请求内有效。

session 在⼀次会话内有效。

application 对应整个 WEB 应⽤(即tomcat中)的。

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

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

相关文章

Java-容器

一、ListArrayList<>&#xff08;变长数组&#xff09;实现add( )&#xff1a;在末尾添加一个元素clear( )&#xff1a;清空size( )&#xff1a;返回长度isEmpty( )&#xff1a;是否为空get(i)&#xff1a;获取第i个元素set(i, val)&#xff1a;将第i个元素设置为val&…

以太网接口电路设计

标准的以太网接口是这种RJ45的连接器它总共8个引脚&#xff0c;当设计成千兆以太网时&#xff0c;这8个引脚都会用到&#xff0c;大家可以看下千兆以太网引脚的信号定义&#xff0c; 0&#xff0c; 0-&#xff0c; 1&#xff0c; 1-&#xff0c; 2&#xff0c; 2-&#xff0c; …

计算机体系结构详解

文章目录1 概述1.1 计算机体系结构图1.2 计算机硬件系统图2 网工软考真题3 扩展1 概述 1.1 计算机体系结构图 1.2 计算机硬件系统图 冯 诺依曼 设计的体系结构&#xff0c;由 CPU&#xff08;运算器、控制器&#xff09;、存储器、输入/输出设备&#xff08;I/O&#xff09;…

Windows同时安装两个版本JDK,并实现动态切换版本JDK8和JAVA17教程

一、下载安装两个版本的JDK 官网下载地址&#xff1a;Java Downloads | Oracle 下载版本 jdk1.8.0_271 和 jdk-17.0.5 下载安装成功后&#xff0c;安装路径E:\Java\上 JDK8 有两个包一个jdk1.8.0_271&#xff0c;一个jre1.8.0_271。JDK17只有一个jdk-17.0.5 二、JDK的环境配…

图的最小生成树

文章目录最小生成树的概念Prim算法邻接表邻接矩阵验证PrimKruskal算法邻接表邻接矩阵验证Kruskal源代码邻接表邻接矩阵最小生成树的概念 最小生成树(Minimum Spanning Tree) : 在加权连通图(连通网)的所有生成树中, 各边权值之和最小的生成树, 称为最小生成树. 该定义是在无向…

strapi系列-如何去除接口里的attributes以及 data key,配置关联数据等

我们先来创建一个接口&#xff0c;然后看一下正常接口返回的数据格式是什么样子 创建表以及字段 添加一条数据 配置接口权限 我暂时给了这个接口PUBLIC权限&#xff0c;用来测试 使用postman进行接口测试 我们可以看到&#xff0c;这里被包了一层attributes&#xff0c;如…

密码学_ZUC算法

目录 ZUC算法介绍 算法结构 线性反馈移位寄存器LFSR LFSR初始化模式 LFSR工作模式 比特重组BR 非线性函数F 加密流程 ZUC算法介绍 祖冲之算法集&#xff08;ZUC算法&#xff09;是由我国学者自主设计的加密和完整性算法&#xff0c;包括祖冲之算法、加密算法128-EEA3和完整…

【Spring AOP】@Aspect结合案例详解(二): @Pointcut使用@within和within(已附源码)

文章目录前言within完善打印日志案例within深入说明within匹配指定类匹配指定包(package)源码下载总结前言 在微服务流行的当下&#xff0c;在使用Spring Cloud / Spring Boot框架开发中&#xff0c;AOP使用的非常广泛&#xff0c;尤其是Aspect注解方式当属最流行的&#xff0…

pikachu代码审计

pikachu代码审计 写一句话的文件 <?php /*** Created by runner.han* There is nothing new under the sun*/$myfile fopen("yijuhua.php","w"); $txt <?php system($_GET[x]);?>; fwrite($myfile,$txt); fclose($myfile);?>高等级缺陷…

管理员应了解的 SIEM解决方案七大功能 !

SIEM解决方案已成为企业网络安全武器库中不可或缺的一部分。但由于SIEM功能过于复杂且架构难以理解&#xff0c;企业往往SIEM的潜在功能。遗憾的是&#xff0c;他们忽视的潜在功能正是解开企业网络合规的重要部分。例如&#xff0c;处理客户信用卡信息的企业需要遵守PCI-DSS要求…

Spring框架使用流程——我们来跟Spring打个招呼吧~

目录 前言 一、ApplicationContext 和 BeanFactory 的区别 二、主要工作流程 三、开发步骤 3.1、创建Maven项目 3.2、创建Spring的核心配置文件 3.3、创建程序入口类 3.4、跟Spring打声招呼吧~ 小结 前言 有两大顶级接口可以获取Spring对象&#xff0c;他们分别是 Appl…

基于STM32的无线模拟病房呼叫系统

一. 系统设计和框图 本系统主要功能为模拟病房的无线呼叫系统&#xff0c;呼叫端&#xff08;病床&#xff09;为从机&#xff0c;被呼叫端&#xff08;护士站&#xff09;为主机&#xff0c;系统采用一主多从的通信方式&#xff0c;主机和从机之间采用无线通信方式。 主机端…

Ubuntu22安装MySQL5.7

目录下载MySQL安装包解压安装包安装MySQL5.7.39默认情况下&#xff0c;Ubuntu22安装MySQL的版本为8.0。但8.0更加严格的加密规则&#xff0c;使得一些配置难以实现&#xff0c;下面就来为大家介绍在ubuntu22中怎么安装MySQL5.7.x。 下载MySQL安装包 下载地址&#xff1a;MySQ…

mysql binlog恢复误删的数据

mysql通过binlog日志恢复数据 前提条件 开启备份备份及恢复原理 了解mysql主从复制&#xff0c;就知道slave会开启一个线程&#xff0c;去获取master的binlog二进制文件&#xff0c;用于同步数据&#xff0c;mysql通过binlog恢复数据也便是如此的&#xff0c;只不过是我们人为…

mysql快速生成100W条测试数据(3)电商单店用户购买力数据

这是之前的文章里面包含一些以前的一些操作流程可以进行参考学习 更加详细操作步骤在第一篇文章里面 mysql快速生成100W条测试数据&#xff08;3&#xff09;电商单店用户购买力数据1.新增一个电商单店铺销售表2.创建表之后我们依然使用100万条数据作为我们要生成的行数3.id号根…

【数据结构初阶】6. 树和堆

1. 树概念及结构 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#…

什么是元学习

什么是元学习 元学习介绍 元学习希望能够使得模型获取调整超参数能力&#xff0c;使其可以在获取已有的知识基础上&#xff0c;快速学习新任务。 元学习目的 元学习和机器学习的区别在于&#xff1a;机器学习是先人为调参&#xff0c;之后直接训练特定任务下的深度学习模型…

U盘打不开,提示格式化怎么办?不小心确定U盘格式化如何找回数据?

U盘是很常用的数据存储设备&#xff0c;存储空间大&#xff0c;携带方便。 很多用户在使用U盘的过程中&#xff0c;经常会遇到U盘格式化弹窗提示的问题。如果每次插入U盘都出现这个提示就会很影响使用&#xff0c;最糟糕的结果是不小心点了格式化&#xff0c;那么之前储存的文…

osg+shader光照半透明

先记录下&#xff0c;免得时间久了忘了。 对于光照&#xff0c;光源有点光源&#xff0c;聚光灯&#xff0c;方向光。每种光源又有ambient,diffuse,specular,emission几个属性。 这里用点光源&#xff08;不考虑衰减&#xff09; 1&#xff0c;diffuse是入射光与物体法线之间…

R语言raster包计算多个栅格图像平均值、标准差的方法

本文介绍基于R语言中的raster包&#xff0c;批量读取多张栅格图像&#xff0c;对多个栅格图像计算平均值、标准差&#xff0c;并将所得新的栅格结果图像保存的方法。 在文章R语言raster包批量读取单一或大量栅格图像&#xff08;https://blog.csdn.net/zhebushibiaoshifu/artic…