JavaWeb ( 六 ) JSP

news2024/9/22 11:42:09

2.4.JSP

JSP (Java Server Pages) : 一种在服务器端生成动态页面的技术,本质上就是Servlet。将HTML代码嵌入到Java代码中, 通过Java逻辑控制HTML代码的结构从而生成页面。在MVC中通常担任视图层(view),负责信息的展示与收集。

2.4.1.生命周期

转换 Jsp源文件转换成servlet源文件
编译 Java文件编译成类(class)文件
装载 将类文件加载到内存中
创建 创建一个servlet类的实例对象
初始化 调用_ jspInit()方法,最终调用servlet的init()
服务 调用_ jspService()方法,最终调用servlet的service()
销毁 调用_ jspDestroy()方法,最终调用servlet的destroy()

2.4.2.九种内置对象

JSP(Java Server Pages)九种内置对象包括:

名称所属类描述作用域
pagejava.lang.Object类型指向页面自身的方式page(页面执行期)
requestjavax.servlet.ServletRequest的子类型此对象封装了由WEB浏览器或其它客户端生成地HTTP请求的细节(参数,属性,头标和数据)。request(用户请求期)
responsejavax.servlet.ServletResponse的子类型此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。page(页面执行期)
sessionjavax.servlet.http.HttpSession类型主要用于跟踪对话session(会话期)
applicationjavax.servlet.ServletContext类型servlet的环境通过调用getServletConfig().getContext()方法获得。它提供了关于服务器版本,应用级初始化参数和应用内资源绝对路径,注册信息的方式application(整个程序运行期)
pageContextjavax.servlet.jsp.PageContext(抽象类)类型此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法page(页面执行期)
configjavax.servlet.ServletConfig提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数page(页面执行期)
outjavax.servlet.jsp.JspWriter类型代表输出流的对象。page(页面执行期)
exceptionjavax.lang.Throwable只有在page指令中具有属性isErrorPage="true"时才有效page(页面执行期)

2.4.3.三种伪指令

用来传送JSP容器中的一种信息,通常写在<%@...%>之间

1.page指令  定义当前页面的属性

 <%@page  language="java" import="java.util.*"  pageEncoding="utf-8" %>

2.include指令 向当前文件插入一个静态文件的内容

 <%@include file="../../../common/include.jsp"  %>  

​ 这里的 …/ 使用的是相对路径

3.taglib指令  引入定制的标签库

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"   %>

2.4.4.动作

动作(行为):创建,修改,或使用对象。遵守严格的XML语法。

<jsp:include> 引入一个文件
<jsp:forward> 转到新的页面
<jsp:useBean> 实例化一个JavaBean
<jsp:setProperty> 设置JavaBean的属性
<jsp:getProperty> 得到JavaBean的属性
<jsp:plugin> 插件

2.4.4.1.<jsp:include> 动作与 include指令比较

  1. 语法格式 :

    指令

<%@ include file=”relativeURI”%>

​ 动作

<jsp:include page=”relativeURI” flush=”true” />
  1. 执行时间

    ​ 指令是在翻译阶段执行
    ​ 动作是在请求处理阶段执行

  2. 引入内容

    ​ 指令 引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
    ​ 动作 引入执行页面或servlet所生成的应答文本.

2.4.5.整体结构

脚本 <%... %> : 用于编写java的逻辑代码, 如:for 循环,if 判断 ,连接调用javaBean,传接值
表达式<%=… %> : 将= 等号后面的内容显示在页面上, 如:展示的内容

在这里插入图片描述

2.4.6.与Servlet比较

  1. JSP就是Servlet :
    -Jsp是Servlet的简化,更方便的生成及维护HTML页面
    -Jsp页面要先转化成Servlet类,再编译执行

  2. 都可以服务器端动态的生成页面
    -Servlet是一行一行的生成
    -JSP参考ASP,将JSP元素嵌到HTML代码中

  3. 侧重各有不同
    -Servlet侧重于重程序逻辑的模块开发
    -JSP侧重于重页面输出的模块开发

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

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

相关文章

浅谈MySQL索引以及执行计划

MySQL索引及执行计划 &#x1f42a;索引的作用&#x1f42b;索引的分类&#xff08;算法&#xff09;&#x1f999;BTREE索引算法演变&#x1f992;Btree索引功能上的分类4.1 辅助索引4.2 聚集索引4.3 辅助索引和聚集索引的区别 &#x1f418;辅助索引分类&#x1f98f;索引树高…

了解MSIL汇编和IL汇编评估堆栈

.assembly extern mscorlib {}.assembly Test{.ver 1:0:1:0}.module test.exe.method static void main() cil managed{.maxstack 1.entrypointldstr "I am from the IL Assembly Language..."call void [mscorlib]System.Console::WriteLine (string)ret} 这是MSIL…

spring-transaction源码分析(2)EnableTransactionManagement注解

概述(Java doc) 该注解开启spring的注解驱动事务管理功能&#xff0c;通常标注在Configuration类上面用于开启命令式事务管理或响应式事务管理。 Configuration EnableTransactionManagement public class AppConfig {Beanpublic FooRepository fooRepository() {// configur…

【Matter】esp-matter环境下的应用实践(程序烧录及串口监视)

文章目录 esp-matter环境下的应用实践前提准备设置环境变量1.ESP-IDF2.ESP-Matter Matter Example编译下载1.激活esp-matter环境2.选择esp设备3.编译工程4.SDK烧写 esp-matter环境下的应用实践 前提准备 请确保你本地已经配置好 esp-idf 及esp-matter环境&#xff0c;可参考此…

经典文献阅读之--PCAccumulation(动态三维场景构建)

0. 简介 多波束激光雷达传感器&#xff0c;常用于自动驾驶汽车和移动机器人&#xff0c;获取三维范围扫描序列&#xff08;“帧”&#xff09;。由于角度扫描分辨率有限和遮挡&#xff0c;每帧只稀疏地覆盖场景。稀疏性限制了下游过程的性能&#xff0c;如语义分割或表面重建。…

北京地铁:充分发挥数据价值,全面提升业财融合能力

4月19日-4月21日&#xff0c;一年一度的用友BIP技术大会圆满召开。来自行业领先企业的CIO/CDO、生态伙伴、开发者、分析师、媒体等共聚北京用友产业园&#xff0c;了解最新技术发展趋势、探讨行业热点话题。会上&#xff0c;北京地铁运营有限公司&#xff08;以下简称“北京地铁…

shared_ptr 的线程安全性

多线程环境下&#xff0c;调用不同的 shared_ptr 实例的成员函数是不需要额外的同步手段的&#xff0c;即使这些 shared_ptr 管理的是相同的对象。 多线程对于同一个 shared_ptr 实例的读操作&#xff08;访问&#xff09;可以保证线程安全&#xff1b;但对于同一个 shared_ptr…

对标世界一流|从Just in time到Just in case ——汽车行业供应链管理经验借鉴

01 丰田汽车精益生产 作为最复杂和最成熟的供应链之一&#xff0c;汽车行业供应链无疑是供应链领域集大成者&#xff0c;而提起汽车行业供应链&#xff0c;就不得不提到丰田汽车&#xff1b;提到丰田汽车&#xff0c;就肯定离不开大名鼎鼎的精益生产以及JIT模式。 JIT模式由丰…

【UE】高级载具插件-05-扫描材质

效果 步骤 1. 首先创建一个材质 再创建一个材质参数集 创建材质实例 2. 将后期处理体积放入场景&#xff0c;并缩放至合适的大小使其全方位覆盖 在后期处理材质中添加一个数组 选择资产引用 将材质实例拖入 3. 打开参数集&#xff0c;添加一个数组元素 设置默认值和参数名 4. …

2023年湖北省中级职称评审申报条件是什么呢?学历不够可以申报吗?

2023年湖北省中级职称评审申报条件是什么呢&#xff1f;学历不够可以申报吗&#xff1f; 1.大专毕业从事本专业技术工作7年以上&#xff1b;助理满足4年。 2.本科毕业从事本专业技术工作5年以上&#xff0c;助理满足4年。 一般来说中专或者高中学历是无法申请中级职称的&…

mobile代码打APK包

1、安装Android SDK Android SDK 下载地址&#xff1a; http://www.androiddevtools.cn/ 下载位置 下载后解压 打开解压文件&#xff0c;点击 SDK Manager.exe 进行安装 安装组件&#xff0c;这要选 Android 8.0.0 或者以上版本 再次安装&#xff0c;发现没什么可以安装了 2…

【Linux】Shell编程之条件语句

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、条件测试操作作1.文件测试2.整数值比较3.逻辑测试 二、if语句的结构1.单分支结构2.双分支结构3.多分支结构 三、case多分支结构 一、条件测试操作作 test命令 …

Win10蓝屏错误0x0000007b怎么U盘重装系统?

Win10蓝屏错误0x0000007b怎么U盘重装系统&#xff1f;有用户安装好的电脑系统最近总是会出现蓝屏错误0x0000007b的情况&#xff0c;遇到这样的情况很多用户不懂怎么去进行处理。今天分享一个U盘重装系统的方法&#xff0c;教会你快速解决此问题的方法。 准备工作&#xff1a; 1…

体验 nanoGPT

体验 nanoGPT 1. 使用预训练模型2. 训练自己的模型2-1. 准备训练数据2-2. 模型训练2-3. 模型验证 1. 使用预训练模型 在我们尝试训练自己的模型之前&#xff0c;我们先使用其他人训练好的模型&#xff0c;看看如何在自己的环境中运行聊天机器人。 今天我们使用 GPT4ALL 并从 …

正则匹配x.x.x

\d(\.\d){2} 正则规则 \d 表示一个十进制的数字 [0-9] 匹配加号之前的一次或多次 正则中[]、()、{}的区别 [] 匹配组内任意字符 eg&#xff1a;[1,2,3,a-z]能匹配1、2、3、a到z的任意字符 () 相应的匹配字符串&#xff0c;匹配组&#xff0c;子表达式 eg:(abc|cbd)能匹配…

既然有Map了,为什么还要有Redis?

以下内容转自掘金 作者:哪吒编程 同样是缓存&#xff0c;用map不行吗&#xff1f; Redis可以存储几十个G的数据&#xff0c;Map行吗&#xff1f;Redis的缓存可以进行本地持久化&#xff0c;Map行吗&#xff1f;Redis可以作为分布式缓存&#xff0c;Map只能在同一个JVM中进行缓…

2022 Jiangsu Collegiate Programming Contest I. Cutting Suffix

题目链接 Examples input aa Output 1 input ab Output 0 题目大意&#xff1a; 后缀i是字符串从第i个字符开始到最后的字符字串 定义Wi,j是字符串 后缀i和后缀j的公共前缀(LCP)的长度 现在给你一个全集为1-n的互补集T1,T2 要求题目中求和公式的最小值。 题目要点&#xff1a;…

学习笔记(1 - 01)项目初始化的方案和对比

目录 1&#xff0c;创建项目的方式1.1&#xff0c;两种方式创建的项目比对HbuilderX创建的项目&#xff1a;cli创建的项目 1&#xff0c;创建项目的方式 uniapp提供两种方式创建项目&#xff1a; 通过HbuilderX编辑器创建&#xff1a; 通过vue-cli创建 第一方式只能通过Hbuild…

如何在Facebook上创建一个成功的广告账户?

Facebook广告已成为许多企业吸引客户和推广品牌的主要方式。但是&#xff0c;如果你没有经验或知识&#xff0c;创建一个成功的Facebook广告账户可能会变得相当棘手。在这篇文章中&#xff0c;我将向你介绍如何创建一个成功的Facebook广告账户。 第一步&#xff1a;创建Faceboo…

Lucene和Solr和Elasticsearch区别,全文检索引擎工具包Lucene索引流程和搜索流程实操

文章目录 基本概念什么是全文检索技术全文检索的应用场景搜索引擎站内搜索&#xff08;关注&#xff09;文件系统的搜索 Lucene & solr & es介绍区别Solr与Lucene对比ES与Lucene的区别ES与Solr对比 Lucene实现全文检索的流程入门程序需求环境准备数据库脚本初始化Lucen…