JSP内置对象详解 常用方法

article/2025/9/29 12:55: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://chatgpt.dhexx.cn/article/jFijemY6.shtml

相关文章

JSP内置对象

JSP内置对象的分类内置对象属性保存范围JSP内置对象的常用方法&#xff08;只列了一些&#xff09;小例子 一&#xff1a;JSP内置对象的分类 这些对象不用经过显示声明直接引用&#xff0c;也不用代码创建其实例&#xff0c;可在程序中直接使用&#xff0c;由Web Container为对…

jsp内置对象之request

一、内置对象概述 有些对象不用声明即可在jsp页面的java程序片和表达式中使用&#xff0c;这就是jsp 的内置对象。Jsp的常用的内置对象有request&#xff0c;response&#xff0c;session&#xff0c;aplication和out。Response和request对象是jsp内置对象中比较重要的两个&am…

JSP的内置对象详解

JSP内置对象 文章目录 JSP内置对象前言一、out对象1.原理2. 向客户端输出数据 二、page对象1.范围 三、pageContext 对象1.获取内置对象2.存储数据 四、request对象1.创建及获取请求2.范围 五、response 对象1.重定向网页2.处理HTTP文件头 六、session对象1.创建及获取客户的会…

JSP常用内置对象概述

1、概述 JSP提供了9个预设的对象&#xff0c;我们将其称为内置对象。这些对象内置在JSP网页环境之下&#xff0c;因此用户不需要引用这些对象所属的包&#xff0c;便可以直接在JSP网页中使用这些对象。 如图&#xff1a; (1 ) request与response对象。JSP网页能够具备与用户…

JSP的九种内置对象

JSP有九个内置对象&#xff08;又叫隐含对象&#xff09;&#xff0c;不需要预先声明就可以在脚本代码和表达式中随意使用&#xff0c;即不需要实例化&#xff0c;直接使用其方法即可。 pageppagecontentoutconfigexceptionrequestreponsesessionapplication 作用域&#xff…

JSP九大内置对象

JSP提供了由容器实现和管理的内置对象&#xff0c;也可以称之为隐含对象&#xff0c;由于JSP使用Java作为脚本语言&#xff0c;所以JSP将具有强大的对象处理能力&#xff0c;并且可以动态创建Web页面内容。但Java语法在使用一个对象前&#xff0c;需要先实例化这个对象&#xf…

【JSP内置对象】之9大内置对象(JavaWeb必背必掌握)

JSP内置对象 理解9大内置对象分类1.request&#xff08;请求对象&#xff09;2.response(响应对象)3.session(会话对象)4.application(应用程序对象)5.page(页面对象)6.pageContext(页面上下文对象)7.out(输出对象)8.config(配置对象)9.exception(异常对象) 理解 1.JavaEE规范…

SQL INSERT 语句

INSERT 语句是向表中添加新行&#xff0c;&#xff08;如图所示的是INSERT 语句的最基本形式&#xff09; 1、首先&#xff0c;是要指定要插入的表的名称&#xff08;例如图中的yuangong&#xff09; 2、其次&#xff0c;指定要插入的数据&#xff0c;一个或多个列的列表。必须…

pycharm sql语句插入

一. 二. 开控制台 三. 书写sql语句&#xff0c;点击绿色三角运行

python执行sql 语句

python执行sql 语句 数据etl 过程中会涉及到调度&#xff0c;也就是每天要定时执行的任务&#xff0c;这些任务执行过程中其实是通过底层的脚本代码来进行数据的清洗转换等处理的。而脚本代码中肯定会涉及到调用sql 语句的情况&#xff0c;最近项目正好用到python 脚本调用sql…

通过Navicat 写SQL语句

具体步骤&#xff1a; 1、首先打开要写SQL语句的数据库连接 2、然后点击菜单中的查询&#xff08;query&#xff09; 3、然后点击新建查询 4、然后输入SQL语句&#xff0c;点击运行 &#xff0c;查询到的数据在底部

mysql修改数据sql语句_sql语句修改数据

sql语句修改数据 SQL 中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 语法格式为:UPDATE SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ] [ORDER BY 子句] [LIMIT 子句] 语法说明如下::用于指定要更新的表名称。 SET 子句:用于指定表中要修改的列名及其列值…

SQL语句常用命令

一、表设计 1、创建表 create table 表名 (字段 字段类型);2、复制表结构及数据 create table 新表 as select * from 旧表3、复制表结构不需要数据 create table 新表 as select * from 旧表 where 2<>24、查看表结构 desc 表名5、复制表数据 insert into 目标表 s…

【180609】经典SQL语句大全(CHM)

收集我们在平时使用SQL时的一些语法语句汇集&#xff0c;比如创建、备份、删除数据库的SQL脚本&#xff0c;这些当然是比较简了&#xff0c;还有复杂点的像备份、创建索引、复合SQL语句、创建视图、高级运算查询、EXCEPT 运算符、INTERSECT 运算符、使用外连接、SQL分组、复制或…

SQL语句大全实例

SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表 STUDENTS &#xff0c;可以定义如下&#xff1a; CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO…

数据库常用的sql语句大全--sql

前言 本片博客使用mysql数据库进行数据操作,使用Navicat for mysql 这个IDE进行可视化操作。每个SQL语句都是亲身实验验证的,并且经过自己的思考的。能够保证sql语句的可运行性。 sql语句的命令不区分大小写,但储存的数据是区分大小写的。在这里我们统一使用英文小写进行命…

SQL常用语句大全

我们在进行开发工作时&#xff0c;对数据库的操作是必不可少的&#xff0c;熟练掌握SQL语句可以让我们对数据库的数据处理变得非常简单&#xff0c;所以学习SQL语句是非常有必要的&#xff0c;下面汇总了一些常用的SQL语句 SQL语句的类型 DDL(Data Definition Language)数据定…

EXPLAIN 命令详解

在工作中&#xff0c;我们用于捕捉性能问题最常用的就是打开慢查询&#xff0c;定位执行效率差的SQL&#xff0c;那么当我们定位到一个SQL以后还不算完事&#xff0c;我们还需要知道该SQL的执行计划&#xff0c;比如是全表扫描&#xff0c;还是索引扫描&#xff0c;这些都需要通…

explain用法和结果的含义

explain select * from user explain extended select * from user idSELECT识别符。这是SELECT的查询序列号select_type SELECT类型,可以为以下任何一种: SIMPLE:简单SELECT(不使用UNION或子查询)PRIMARY:最外面的SELECTUNION:UNION中的第二个或后面的SELECT语句DEPENDENT UN…

SQL优化-explain的用法(实例解析)

前面写了两篇博客&#xff0c;关于单表和多表的优化&#xff0c;这两篇博客的基础其实就是explain&#xff0c;explain是必须掌握的知识点&#xff0c;我曾尝试过死记硬背&#xff0c;但效果甚微&#xff0c;还是实践来的实在。耗费一周左右时间&#xff0c;每晚花两小时&#…