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

article/2025/9/29 13:08:22

JSP内置对象

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

理解

1.JavaEE规范中对JSP的内置对象只提供了接口,而具体的实现类由所使用的web服务器提供,当服务器启动时,服务器会自动将这些接口的实现类创建并赋值给对应JSP内置对象变量,在页面中才能使用这些内置对象。

2.JSP内置对象在JSP页面中可以直接使用,不需要声明或创建对象,但在Servlet中不能直接使用(request和respons两个对象除外),其他相关内置对象可以通过request对象获取

9大内置对象分类

1.request(请求对象)

  • 该对象是“HttpServletRequest”接口的一个实现类对象,该对象表示客户端向服务端发送的一次请求;
  • 该对象属于“作用域”对象,它的作用域仅限于一次请求期:该作用域从客户端向服务端发送请求开始,服务端接受到客户端请求后终止(我们可以通过请求转发将该请求延长),在request对象中存放的数据只能在其作用域内起作用。

常用方法
1.设置request对象的编码集: 默认情况下客户端向服务端提交的数据如果存在英文会出现乱码,则需要设置request对象的编码集。

request.setCharacterEncoding("UTF-8");

2.根据参数名获得对应的参数值:

request.getParameter("paramName");

eg.

String username=request.getParameter("username");
String password=request.getParameter("password");

3.根据参数名获得一组同名的参数值,返回字符串数组:

request.getParameterValues("paramName");

4.向request作用域中设置一个属性:参数1"attrName"为属性名,参数 2"attrName"为属性值(Object)

request.setAttribute(attrName,attrName);

eg.

//登录失败
request.setAttribute("errMSG","用户名或密码错误!");

5.根据属性名获取属性值:从request作用域中获取一个属性的值,默认为Object类型

request.getAttribute(attrName);

6.请求转发:使用请求转发实现页面跳转,请求转发可以将请求对象转发到指定位置(其他页面或 Servlet 中)

request.getRequestDispatch(url).forward(request,response);

2.response(响应对象)

  • 该对象属于 HttpServletResponse 接口的一个实例,该对象表示服务端向客户端发送的一次回应

常用方法
1.重定向:url为目标地址

response.sendRedirect(url);

2.设置响应的内容类型与编码集:

response.setContentType("text/html;charset=utf-8");

3.获得一个输出流 ,通过该输出流可以向客户端直接输出内容,如果需要输出中文则需要设置“内容类型”:

response.getWriter();

补充–请求转发和重定向的区别:

  • 相同点:可以实现页面跳转。
  • 不同点:
    (1)使用请求转发实现页面跳转后,地址栏显示的地址为请求转发的源地址而不是目标地址。使用重定向实现页面跳转后,地址栏显示的是目标地址。
    (2)请求转发不仅可以传递字符串数据还可以将请求对象传递给目标地址。重定只能传递字符串数据。
    (3)请求转发属于服务器内部转发,不会由客户端发送新请求。重定向是由客户端再次发送的一次请求。

3.session(会话对象)

  • 该对象是"HttpSession"接口的一个实现类对象
  • session表示一次会话,什么是会话呢?
    (1)会话指“请求与响应”的集合;
    (2)会话指客户端“第一次”向服务端发送请求开始,直到“客户端的浏览器关闭”或“服务端关闭”或“超时”或“服务端手动销毁”终止;
    (3)在会话开始到会话结束,期间的所有“请求和响应”都在同一个会话中。
  • 在JavaWeb中会存在session的原因?
    (1)首先理解Http协议:Http协议是一个“无状态”的协议,无状态指在该协议下客户端与服务端的连接状态不会保持;
    (2)由于在使用Http协议的情况下,服务端无法确定新的请求之前是否请求过,但是通过session却可以维护当前客户端和服务端的状态
    在这里插入图片描述(3)web开发中可以通过session机制来维持客户端与服务端的关系。
  • Web应用如何通过session类来维持客户端与服务端的关系呢?【靠sessionId维持
    (1)当客户端第一次访问服务端时,服务端检测请求中是否存在sessionId,如果不存在则表示该客户端是第一次访问;
    (2)服务端创建一个session对象并生成一个唯一的sessionId,将session对象及sessionId存入到服务端,并将sessionId响应到客户端;
    (3)客户端浏览器接收到服务端响应的sessionId后,会自动的将该sessionId保存下来(临时存储);
    (4)其次客户端每次向服务端发送请求时,都会将sessionId自动发送到服务端;
    (5)服务端接收到sessionId检测该Id是否有效,如果有效则表示该客户端不是第一次访问,通过可以从session对象获取存储的数据。
  • session依赖于浏览器,不同的浏览器访问同一个服务器时会产生不同sessionId
  • session也属于作用域对象,其作用域为第一次请求到session销毁结束,在作用域内的数据对同一个session是共享的。
  • session开始和销毁的条件
    • session开始:当第一次访问服务端时session开始
    • session销毁
      a.关闭浏览器
      b.服务端手动销毁session,使用
      session.invalidate();
      
      c.超时,当客户端在一定时间内未向服务端发送任何请求时,服务端虎认为该session失效自动销毁(tomcat的默认超时时间为30分钟)
      d.服务器关闭或重启

session的常用方法
1.获得sessionId

session.getId();

2.销毁session

session.invalidate();

3.向session作用域中存放一个属性

session.setAttribute(attrName,attrValue);

4.从session中获取一个属性值

session.getAttribute(attrName);

5.从session中移除一个属性

session.removeAttribute();

4.application(应用程序对象)

  • 该对象是ServletContext接口的一个实现类对象,该对象表示当前“应用服务器”;

  • 该对象也属于作用域对象,其中可以存放数据,但该对象的作用域为整个应用服务器,因此在application对象存放的数据为整个服务器的共享数据,关于用户的隐私数据不允许在该对象存放;
    常用方法
    (1)向 application 对象中添加一个属性:

    application.setAttribute(“name”,obj);
    

    (2)从 application 获取一个属性,根据属性名获取:

    application.getAttribute(“name”);
    

5.page(页面对象)

  • 当前页面对象,等同于this关键字。

6.pageContext(页面上下文对象)

  • 该对象为一个作用域对象,可以通过pageContext对象在当前页面存储数据,它的作用域仅限于当前页面;
  • 可以通过pageContext对象获取其他内置对象。

7.out(输出对象)

  • 该对象是一个输出流对象,用于向页面输出内容。

8.config(配置对象)

  • config对象为配置对象,在页面中可以获取配置信息。

9.exception(异常对象)

  • 该对象为异常对象,使用该对象可以在JSP页面中处理异常。

  1. 结束语:有任何意见或者建议欢迎投稿哦~喜欢就给小明同学点个赞吧!

开心


http://chatgpt.dhexx.cn/article/4cuZQwQg.shtml

相关文章

SQL INSERT 语句

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

pycharm sql语句插入

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

python执行sql 语句

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

通过Navicat 写SQL语句

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

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;每晚花两小时&#…

MySQL中EXPLAIN详解

EXPLAIN作为MySQL的性能分析神器&#xff0c;读懂其结果是很有必要的&#xff0c;然而我在各种搜索引擎上竟然找不到特别完整的解读。都是只有重点&#xff0c;没有细节&#xff08;例如type的取值不全、Extra缺乏完整的介绍等&#xff09;。 mysql网站 文章目录 EXPLAIN使用用…

MySql的Explain用法

MySql的Explain用法 explain执行计划 explain执行计划 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 ➤ 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读…

MySQL Explain用法及各字段详解

Explain工具介绍 使用 Explain 关键字可以模拟 MySQL 优化器执行 SQL 查询语句&#xff0c;并分析出查询语句的相关执行过程。 使用方法是直接在 select 语句前&#xff0c;加上关键字 explain&#xff0c;然后执行&#xff0c;就能获取一些优化器执行该 SQL 的信息。使用方法…

MySql中explain的用法

explain命令展示MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 explain命令使用 只需要在select前面加上EXPLAIN即可&#xff0c;如&#xff1a; explain select * from table_name where col_name XX注&#xff1a;expla…

MySQL中的Explain用法

一、Explain介绍   使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而就可以知道MySQL是如何处理你的SQL语句的&#xff0c;可以用来分析你的查询语句或者是表结构的性能瓶颈。   通过EXPLAIN我们可以分析出以下结果&#xff1a;     ●表的读取顺序  …

mysql中explain用法和结果的含义

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

EXPLAIN用法解析

1. EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 ➤ 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读取顺序 数据读取操作的操作类型 哪些索引…