JavaWeb | JSP内置对象
目录:
- 1.认识JSP内置对象
- 2.JSP内置对象的特点
- 3.九大内置对象
- 3.1 out对象的作用
- 向 “客户端” 输出各种数据内容
- 对 “服务器” 上的输出缓冲区进行管理
- 3.2 request对象的作用
- 能够获取客户端的基本信息
- 3.3 response对象的作用
- 利用response对象进行 “重定向”
- 利用response设置HTTP头
- 3.4 "重定向" 和 "请求转发" 的区别
- 3.4.1 从浏览器的地址显示上来看
- 3.4.2 从数据共享来看
- 3.4.3 从功能来看
- 3.4.4 从效率来看
- 4.(不断补充中.....)
1.认识JSP内置对象
- JSP内置对象就是指在JSP页面中内置的不需要定义就可以在网页中直接使用的对象。
- JSP有九种内置对象 :( 九大内置对象 )
(1) out对象: 负责管理对客户端的输出。
(2) request对象 : 负责得到客户端的请求信息。
(3) response对象 : 负责向客户端发出晌应
(4) session对象 : 负责保存同一客户端一次会话过程中的一些信息。
(5) application对象 : 表示整个应用的环境信息。
(6) exception对象 : 表示页面上发生的异常,可以通过它获得页面异常信息。
(7) page对象 : 表示的是当前JSP页面本身,就像Java类定义中的this一样。
(8) pageContext对象 : 表示的是此JSP的上下文。
(9) config 对象 : 表示此JSP的ServletConfig.
2.JSP内置对象的特点
- 内置对象 是自动载入的,因此它不需要直接实例化。(可直接在JSP页面调用/使用JSP内置对象)
- 内置对象是通过Web容器来实现和管理的。
- 在所有的JSP页面中,直接调用内置对象都是合法的。
3.九大内置对象
3.1 out对象的作用
用来向客户端输出各种数据类型的内容。
对应用服务器上的输出缓冲区进行管理。
一般情况下,out对象都是向浏览器端输出 文本型 的数据,所以可以用out对象直接编程生成一个动态的HTML文件,然后发送给浏览器,达到显示的目的。
向 “客户端” 输出各种数据内容
通过out对象的两个 “输出方法” 来向客户端中输出各种数据内容。
void print()
void println()
两者的区别是out.print()函数在输出完毕后并不换行,而out.println()函数在输出完毕后会结束当前行( 会换行),下一个输出语句将会在下一行开始输出。
不过,在输出中换行,在网页上并不会换行。在网页上换行应该打印字符串"< br>"。
对 “服务器” 上的输出缓冲区进行管理
out对象还可以实现对 应用服务器上的输出缓冲区的管理。
以下是out对象常用的与 管理缓冲区有关的函数:
(1)void close() : 关闭输出流,从而强制终止当前页面的剩余部分向浏览器输出。
(2)void clearBuffer() : 清除缓冲区里的数据,并且把数据写到客户端去。
(3) void clear() : 清除缓冲区里的数据,但 不把数据写到客户端去。
(4) int getRemaining() : 获取缓冲区中没有被占用的空间的大小。
(5)void flush() : 输出缓冲区的数据。out.flush()函数也会清除缓冲区中的数据,但是该函数先将之前缓冲区中的数据输出到客户端,然后再清除缓冲区中的数据。
(6) int getBufferSize() : 获得缓冲区的大小。out管理缓冲区使用得比较少,因为通常使用服务器端默认的设置,而不需要手动管理。
request 对象 :
- request代表了客户端的请求信息,主要是用来获取客户端的参数和流。
它对应的类型是javax. servlet.http.HttpServletRequest。该对象在前面的内容中用到,如URL传值、表单开发中。
3.2 request对象的作用
能够获取客户端的基本信息
request对象的一个主要用途就是它 能够获取客户端的基本信息。主要有以下几种方法:
(1) String getMethod() : 得到提交方式。
(2) String getRequestURI() : 得到请求的URL地址。
(3) String getProtocol) : 得到协议名称,
(4) String getServletPath() : 获得客户端请求服务器文件的路径。
(5) String getQueryString() : 得到URL的查询部分,对于post来说,该方法得不到任何信息。
(6) String getServerName() : 得到服务器的名称。
(7) String getServerPort() : 得到服务器端口号。
(8) String getRemoteAddr() : 得到客户端的IP地址。<%@ page contentType="text/html;charset=gb2312" language="java" %> <html> <head><title>Two.jsp</title> </head> <body> 提交方式: <%= request. getMethod() %><br> 请求的URL地址: <%= request. getRequestURI()%><br> 协议名称: <%= request. getProtocol()%><br> 客户端请求服务器文件的路径: <%= request. getServletPath()%><br> URL的查询部分: <%= request. getQueryString()%><br> 服务器的名称: <%= request. getServerName()%><br> 服务器端口号: <%= request. getServerPort() %><br> 远程客户端的IP地址: <%= request. getRemoteAddr()%><br> </body> </html>
response对象 :
- response 和 request 是一组 相对应 的内置对象。
- response可以理解为 客户端的响应,request可以理解为 客户端的请求,二者所表示的范围是相对应的两个部分,具有很好的对称性。
- response对应的类(接口) 是 javax.servlet.http.HttpServletResponse。
3.3 response对象的作用
利用response对象进行 “重定向”
重定向就是跳转到另一个页面 / 实现程序的跳转,可以用response对象进行重定向,方法如下:
response.sendRedirect(目标页面路径);responseTest1.jsp
<%@ page language="java" pageEncoding="gb2312" import="java.util.*" %> <html> <head><title>responseTest1.jsp</title> </head> <body> <form action="responseTest2.jsp"> <input type= "submit" value= "提交"> </form> </body> </html>responseTest2.jsp
<%@ page language="java" pageEncoding="gb2312" import="java.util.*" %> <html> <head><title>responseTest2.jsp</title> </head> <body> <%//重定向到另一个页面response.sendRedirect("responseTest3.jsp"); //相对路径 %> </body> </html>responseTest3.jsp
<%@ page language="java" pageEncoding="gb2312" import="java.util.*" %> <html> <head><title>responseTest3.jsp</title> </head> <body>欢迎来到学校管理系统! </body> </html>
利用response设置HTTP头
HTTP头一般用来 设置网页的基本属性,可以通过 response 的 setHeader() 方法进行设置,代码如下。
<%response.setHeader("Pragma","No - cache" );response. setHeader( "Cache - Control" ,"no - cache");response. setDateHeader("Expires",0); %>这都表示在客户端缓存中不保存页面的副本。
<%--表示客户端浏览器每隔5秒钟定期刷新一次。--%> <%response. setHeader( "Refrsh","5"); %>
3.4 “重定向” 和 “请求转发” 的区别
<% //重定向到另一个页面(重定向实现"页面跳转") response.sendRedirect("文件名"); //相对路径 %><%-- JSP动作 实现“页面”跳转 --%> <jsp:forward page="文件名"></jsp:forward>重定向和请求转发都能实现页面跳转 ,但两者又有区别 ,具体区别分析如下。
3.4.1 从浏览器的地址显示上来看
- forward属于服务器端去请求资源,服务器直接访问目标地址,并对该目标地址的响应内容进行读取,再把读取的内容发给浏览器,因此 客户端浏览器的地址不变。
- redirect是告诉客户端,使浏览器知道去请求哪一个地址,相当于客户端重新请求一遍,所以地址显示栏会变。
( forward进行页面跳转时,客户端浏览器地址 不会改变;redirect进行页面跳转时,客户端浏览器地址 会改变)
3.4.2 从数据共享来看
forward转发的页以及转发到的目标页面能够共享request里面的数据,而redirect转发的页以及转发到的目标页面不能共享request里面的数据。
3.4.3 从功能来看
redirect能够 重定向到当前应用程序的其他资源,还能够重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。
forward只能在同一个Web应用程序内的资源之间转发请求,可以理解为 服务器内部的一种操作。
如 : redirect可以重定向百度网址,但forward请求转发百度网址会报错。
3.4.4 从效率来看
forward的效率较高,因为跳转仅发生在服务器端 ;redirect的效率相对较低,因为相当于又进行了一次请求。
4.(不断补充中…)
相关文章:
JavaWeb | JSP内置对象
目录: 1.认识JSP内置对象2.JSP内置对象的特点3.九大内置对象3.1 out对象的作用向 “客户端” 输出各种数据内容对 “服务器” 上的输出缓冲区进行管理 3.2 request对象的作用能够获取客户端的基本信息 3.3 response对象的作用利用response对象进行 “重定向”利用re…...
如何保持高能量
精力管理 精力管理对于平衡多项任务和保持热情至关重要。 通过自我积极反馈循环系统培养积极的内心声音。 培养仪式和习惯来控制内心的声音并保持能量。 学习语言带来正能量和宝贵的技能 保持高能量需要自我赋权和体力充电。 经常锻炼有很多好处,包括改善健康…...
Oracle研学-基础操作
学自B站黑马程序员笔记 一 创建表空间(创建数据文件) 创建表空间同时会创建一个数据文件(下面5行应该是一句话),表空间在PLSQL的Object的tablespace中可以看到 create tablespace waterboss //创建表空间 datafile c:\waterboss.dbf //创建表空间对应的…...
jmeter下载地址
Jmeter安装教程【5.5】【Windows】jmeter详细安装配置教程,装不好你打我_一只莽夫的博客-CSDN博客...
C语言,求取数组的序亏:已知一个整数数组,求出个数组中每个元素在整个 数组的排序。
要求获取整数数组中每个元素的排序,可以使用以下方法: 1. 定义一个结构体数组,其中每个结构体包含数组元素的值和索引。 2. 遍历整数数组,将每个元素与其索引一起存储到结构体数组中。 3. 对结构体数组进行排序,按照…...
信息流广告行为兴趣定向底层逻辑算法
行为兴趣定向 1: 行为兴趣的背后是计划的数据 行为是用户在平台的动作:点赞、评论、分享、点击、下单、成交等,用户发生过的标签 兴趣不一定发生,我有打高尔夫的兴趣,但是从来没打过,因为穷 系统会根据用户的行为标…...
Selenium——isDisplayed()、isEnabled()、isSelected()
判断页面是否存在某元素 Selenium没有直接提供判断是否存在的方法,可以使用findElements返回的数量判断;或者判断findElement是否抛出异常 webDriver.findElements(By.xpath("(//div[classel-button-group]//button)[1]")).size()isDisplaye…...
unity UGUI中获取点击位置处的URL链接
需求是,我们在一个text组件中像写网页那样写入链接,然后点击这个链接,就能访问配置的网页啥的。比如: <a href"hello">链接文本</a></summary> 最终的效果如下: 图中,image区…...
【Arduino库之:FastLED库】
第一:基础 led [ 0 ] CRGB::Red; //为第一个灯珠设置红色 FastLED.show(); //这个作用才会显示 示例程序: #include <FastLED.h> #define NUM_LEDS 8 #define DATA_PIN 7 #define CLOCK_PIN 13 CRGB leds[NUM_LEDS]; CRGB myGRBcolor(0…...
两道面试题秒杀你的C++基础!
大家好,我是光城,今天发两个非常重要的面试题,可以留言区说出你的答案,这两个题目都比较重要,看你能答对不? 1.C中初始化变量有几种方式,各自有什么区别? 或者说Initialization分为哪…...
回归预测 | MATLAB实现SMA+WOA+BOA-LSSVM基于黏菌算法+鲸鱼算法+蝴蝶算法优化LSSVM回归预测
回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测 目录 回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现SMAWOABOA-LSSVM基于黏菌算法…...
柔性数组(Flexible Array Members)在C语言中的应用
什么是柔性数组? 在C语言中,柔性数组(Flexible Array Members,FAMs)是C99标凈引入的一种便捷的数据结构,用于声明具有可变大小数组的结构体。柔性数组通常用于当结构体的大小在编译时不确定,但…...
华为手环配置技巧
前言 华为手环作为生活健康辅助设备发挥不可忽视的作用,但每次更换手环后需要重新配置。华为手环不仅有健康监测、消息通知、天气推送、离线支付、公交卡、运动锻炼、等功能,还有倒计时、计时器、手电筒、闹钟、等小工具。下文介绍如何进行配置。 配置…...
2023全球数字贸易大赛--什么是 DID 身份,中青校园APP,全球碳交易=树根格致,多元空间=购物时代的web3.0,超喵Overview
目录 什么是 DID 身份,为什么需要 DID 1. 中心化身份的问题 2. 为什么 DID 一定会出现...
有序表常见题型
给定一个数组arr和两个整数a和b求arr中有多少个子数组累加和在a到b这个范围上返回达标的子数组数量 如【3,6,1,9,2】达标的子数组通过暴力求解的方式时间复杂度为O(N的三次方)【找每个子数组占用O…...
【开源】基于JAVA语言的桃花峪滑雪场租赁系统
项目编号: S 036 ,文末获取源码。 \color{red}{项目编号:S036,文末获取源码。} 项目编号:S036,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设…...
【开源】基于Vue.js的图书管理系统
文末获取源码,项目编号: S 066 。 \color{red}{文末获取源码,项目编号:S066。} 文末获取源码,项目编号:S066。 目录 一、 系统介绍二、 功能模块2.1 登录注册模块2.1 图书馆模块2.2 图书类型模块2.3 图书模…...
python跑ncnn(验证模型是否转换成功)
为了转ncnn模型是否成功,用python验证一下先 pip install ncnn分割模型的验证代码 import ncnn import cv2 import numpy as np# 创建ncnn的网络对象 net ncnn.Net()# 加载ONNX模型 net.load_param(E:\\Android_Projects\\ncnn-android-deeplabv3plus-main\\app\…...
FL Studio 21.2.1.3859中文破解激活版2024免费下载安装图文教程
FL Studio 21.2.1.3859中文破解激活版是我见过更新迭代最快的宿主软件,没有之一。FL Studio12、FL Studio20、FL Studio21等等。有时甚至我刚刚下载好了最新版本,熟悉了新版本一些好用的操作,Fl Studio就又推出了更新的版本,而且F…...
人工智能发展史
人工智能(AI)的发展史是一段跨越数十年的旅程,涵盖了从早期理论探索到现代技术革新的广泛内容。人工智能的发展历程展示了从最初的概念探索到现代技术突破的演变。尽管经历了多次起伏,但AI领域持续进步,不断拓展其应用…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录
#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...
HTML中各种标签的作用
一、HTML文件主要标签结构及说明 1. <!DOCTYPE html> 作用:声明文档类型,告知浏览器这是 HTML5 文档。 必须:是。 2. <html lang“zh”>. </html> 作用:包裹整个网页内容,lang"z…...
