当前位置: 首页 > news >正文

JAVA开发(JSP的9大内置对象和4大作用域)

背景:

在springboot横行的javaweb开发中,现在的后端开发工程师基本不需要写前端JSP页面。但是作为web开发工程师,不懂JSP的原理和作用,几乎是不行的。

JSP技术介绍:

JSP(全称Java Server Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。 JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
 

JSP的9大内置对象:

  • page:JSP 页面本身(相当于 Java 程序中的 this)
  • request:封装客户端的请求,其中包含来自 GET 或 POST 请求的参数;
  • response:封装服务器对客户端的响应;
  • session:封装用户会话的对象;
  • application:封装服务器运行环境的对象;
  • pageContext:通过该对象可以获取其他对象;
  • out:输出服务器响应的输出流对象;
  • config:Web 应用的配置对象;
  • exception:封装页面抛出异常的对象。

四大作用域:

 

JSP 中的四种作用域包括 page、request、session 和 application:

  1. page:代表与页面相关的对象和属性;
  2. request:代表与客户端发出的请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件,需要在页面中临时显示的数据可以置于此作用域;
  3. session:代表某个用户与服务器当前建立会话相关的对象和属性,当前用户相关的数据应该放在用户自己的 session 中;
  4. application:代表与整个 Web 应用程序相关的对象和属性,实质上 application 是跨越整个 Web 应用程序的,包括多个页面、请求和会话,是一个全局作用域。


共同的方法:
void setAttribute(String name,Object obj);
Object getAttribute(String name);
void removeAttribute(String name);

JSP内置对象对应的也是java代码:

page范围:只在一个页面保留数据(javax.servlet.jsp.PageContext(抽象类))

request范围:只在一个请求中保存数据(javax.servlet.httpServletRequest)

Session范围:在一次会话中保存数据,仅供单个用户使用(javax.servlet.http.HttpSession)

Application范围:在整个服务器中保存数据,全部用户共享(javax.servlet.ServletContext)

pageContext 当前页面有效(页面跳转后无效)
request 同一次请求有效(请求转发后有效,重定向后无效)
session 同一次对话有效(同一个浏览器在退出关闭之前都有效)
application 全局有效(整个项目)

request

 response:

 

http://www.lryc.cn/news/39495.html

相关文章:

  • (4)EKF失控保护
  • 数论----质数的求解(C/C++)
  • 【电赛MSP430系列】GPIO、LED、按键、时钟、中断、串口、定时器、PWM、ADC
  • 【Linux】进程理解与学习(Ⅱ)
  • vscode 爽到起飞的快捷键
  • vs +qt 打包.cpp和.h为DLL文件
  • echarts有滑块
  • MATLAB绘制ROC曲线
  • ChatGPT前传
  • 我的十年编程路 2020年篇
  • 力扣-SQL【入门】
  • Vue中组件到底是什么
  • 不同时间间隔数据对统计结果的影响
  • hudi系列-数据写入方式及使用场景
  • C # FileStream文件流
  • Go语言中的保留字和运算符详解
  • Linux编译之(1)C语言基础
  • CPU平均负载高问题定位分析
  • Python蓝桥杯训练:基本数据结构 [二叉树] 中
  • 读取 DTC 信息服务 (0x19) – UDS 协议
  • Hive 分区表新增字段 cascade
  • 【Java版oj】day08两种排序方法、最小公倍数
  • FinOps,从概念到落地 | UGeek大咖说第一期直播回顾(上)
  • k8s java程序实现kubernetes Controller Operator 使用CRD 学习总结
  • Unity笔记:修改代码执行的默认打开方式
  • Linux IPC:匿名管道 与 命名管道
  • 阿里研发工程师JAVA暑期实习一面
  • 第十四届蓝桥杯三月真题刷题训练——第 11 天
  • 机器学习入门——线性回归
  • Microsoft Word 远程代码执行漏洞(CVE-2023-21716)