做网站和做新媒体运营,快速建站教程网,WordPress上传后找不到,高州市网站建设文章目录 #x1f30d;一. JSP❄️1.JSP介绍❄️2.JSP 运行原理❄️3.page 指令(常用的)❄️ 4.JSP 三种常用脚本1.声明脚本2.表达式脚本3.代码脚本 ❄️5.JSP 内置对象❄️6.JSP 域对象 #x1f30d;二. EL❄️1.EL 表达式介绍❄️2.EL 运算操作❄️3.EL 的 11 个隐含对象 一. JSP❄️1.JSP介绍❄️2.JSP 运行原理❄️3.page 指令(常用的)❄️ 4.JSP 三种常用脚本1.声明脚本2.表达式脚本3.代码脚本 ❄️5.JSP 内置对象❄️6.JSP 域对象 二. EL❄️1.EL 表达式介绍❄️2.EL 运算操作❄️3.EL 的 11 个隐含对象 三. JSTL❄️1.JSTL 标签库介绍❄️2. core 核心库 ♂️ 作者whisperrr.♂️ 专栏JavaWeb 标题【JavaWeb10】服务器渲染技术 — JSP ❣️ 寄语比较是偷走幸福的小偷❣️ 一. JSP
❄️1.JSP介绍
1.为什么需要 JSP 程序员在开发过程中发现 servlet 做界面非常不方便 引出 JSP 技术JSP 公式 jsphtmljava 片段标签javascriptcss 2.JSP 全称是 Java Server PagesJava 的服务器页面 3.JSP 这门技术的最大的特点在于写 JSP 就像在写 HTML ● 相比 html 而言html 只能为用户提供静态数据而 JSP 技术允许在页面中嵌套 java 代码为用户提供动态数据 ● 相比 Servlet 而言Servlet 很难对数据进行排版而 jsp 除了可以用 java 代码产 生动态数据的同时也很容易对数据进行排版。 4.jsp 技术基于 Servlet, 你可以理解成 JSP 就是对 Servlet 的包装. 5.会使用 JSP 的程序员, 再使用 thymeleaf 是非常容易的事情, 几乎是无缝接轨. 6.创建 hspedu_jsp WEB 项目并引入 jar 7. jsp 页面不能像 HTML 页面, 直接用浏览器运行。只能通过浏览器访问 Tomcat 来访问jsp 页面
❄️2.JSP 运行原理
1.jsp 页面本质是一个 Servlet 程序, 其性能是和 java 关联的, 只是长得丑. 2. 第 1 次访问 jsp 页面的时候。Tomcat 服务器会把 jsp 页面解析成为一个 java 源文件。并 且 对 它 进 行 编 译 成 为 .class 字 节 码 程 序 。 分析下 cal_jsp.java 的源码可以看出本质就是 Servlet, 要看到源码和分析类图需要加入 jasper.jar 这个包[在 tomcat/lib 下拷贝]
❄️3.page 指令(常用的) language 表示 jsp 翻译后是什么语言文件, 只支持 javacontentType 表示 jsp 返回的数据类型对应源码中 response.setContentType()参数值pageEncoding 属性 表示当前 jsp 页面文件本身的字符集import 属性 跟 java 源代码中一样。用于导包导类
❄️ 4.JSP 三种常用脚本
1.声明脚本
1.声明脚本的格式是 %! 声明 java 代码 % 作用定义 jsp 的需要属性、方法、静态代码块和内部类等 2.代码演示 % page contentTypetext/html;charsetUTF-8 languagejava %
html
head
titlejsp 声明脚本应用实例/title
/head
body
h1jsp 声明脚本应用实例/h1
%!
//声明属性 - 这个属性就是该 jsp 文件生成的 servlet statement_jsp 类的
private Integer id;
private String name 老韩同学;
private String job;
private static String company;
private Double sal;
//静态代码块
static {
company 字节跳动;
}
//声明方法
public String getName() {
return name;
}
%
hr/
/body
/html2.表达式脚本
1.表达式脚本基本语法
表达式脚本的格式是%表达式%表达式脚本的作用是在 jsp 页面上输出数据表达式脚本中的表达式不能以分号结束。
2.代码演示
% page contentTypetext/html;charsetUTF-8 languagejava %
html
head
titlejsp 表达式脚本/title
/head
body
h1jsp 表达式脚本应用实例/h1
%!
String name 字节跳动;
%
hr/
h1个人信息/h1
用户名 %name%br/
工作是: %java 工程师%br/
得到参数 %request.getParameter(sex)%//null
/body
/html3.代码脚本
代码脚本的语法是% java 代码%代码脚本的作用是可以在 jsp 页面中编写我们需要的功能使用 java 可以由多个代码脚本块组合完成一个完整的 java 语句。代码脚本还可以和表达式脚本一起组合使用在 jsp 页面上输出数据
❄️5.JSP 内置对象
● 基本介绍 [讲解] 1、JSP 内置对象(已经创建好的对象, 直接使用 inbuild)是指 Tomcat 在翻译 jsp 页面成为Servlet 后内部提供的九大对象叫内置对象 2、内置对象可以直接使用不需要手动定义
● JSP 九大内置对象
out 向客户端输出数据out.println();request 客户端的 http 请求response 响应对象session 会话对象application 对应 ServletContextpageContext jsp 页面的上下文是一个域对象可以 setAttribue(),作用范围只是本页面exception 异常对象 , getMessage()page 代表 jsp 这个实例本身config 对应 ServletConfig
● 对照 Servlet 来理解就比较轻松了. (学技术的思路: 只要去学某个类建议熟练该类的继承关系) 一张图, 展示了 JSP 的父类 HttpJspBase 继承关系, 说明 JSP 内置对象的来源是 Servlet 和HttpJspPage ❄️6.JSP 域对象
JSP 四大域对象介绍[作用存取数据] 1.pageContext (域对象存放的数据只能在当前页面使用),【示意图】学习技术小技巧:/自己尝试去根据理解画出示意图 2. request (域对象存放的数据在一次 request 请求有效), 【示意图】 3. session(域对象,存放的数据在一次会话有效), 【示意图】 4. application(域对象,存放的数据在整个 web 应用运行期间有效, 范围更大), 【示意图】 JSP 请求转发标签
jsp:forward page/bb.jsp/jsp:forwar二. EL
❄️1.EL 表达式介绍 EL 表达式全称Expression Language是表达式语言 EL 表达式主要是代替 jsp 页面的表达式脚本%request.getAttribute(xx)% EL 表达式输出数据的时比 jsp 的表达式脚本简洁 EL 表达式基本语法 ${key1}, 你可以理解就是一个语法糖
% page contentTypetext/html;charsetUTF-8 languagejava %
html
head
titleel 表达式快速入门/title
/head
body
% request.setAttribute(key, key 值); %
jsp 表 达 式 脚 本 %request.getAttribute(key) null ? :
request.getAttribute(key)%br/
EL 表达式${key}
/body
/htmlEL 表达式在输出 null 时输出的是 “” 3. jsp 表达式脚本输出 null 的时输出的是 “null” 字符串EL 表达式常用输出 Bean 的普通属性、 数组属性、List 集合属性和 map 集合属性
❄️2.EL 运算操作
基本语法语法${ 运算表达式 } 语法${ 运算表达式 }关系运算 逻辑运算 算数运算
EL 的 empty 运算 empty 运算可以判断一个数据是否为空如果为空返回 true否则返回 false 以下几种情况为空 ● 值为 null ● 值为空串的时 ● 值是 Object 类型数组长度为零 ● list 集合元素个数为零 ● map 集合元素个数为零 ❄️3.EL 的 11 个隐含对象 EL 四个特定域变量 pageContext 对象介绍 协议 ${ pageContext.request.scheme } 服务器 ip${ pageContext.request.serverName } 服务器端口${ pageContext.request.serverPort } 工程路径${ pageContext.request.contextPath } 请求方法${ pageContext.request.method } 客户端 ip 地址${ pageContext.request.remoteHost } 会话 id ${ pageContext.session.id }
三. JSTL
❄️1.JSTL 标签库介绍
JSTL 标签库 是指 JSP Standard Tag Library JSP 标准标签库EL 表达式是为了替换 jsp 中的表达式脚本JSTL 是为了替换代码脚本。这样 jsp 页面 变得更佳简洁JSTL 由五个标签库组成 使用 JSTL需要导入相关的 jar 包
代码演示
%taglib prefixc urihttp://java.sun.com/jsp/jstl/core %
韩顺平 Java 工程师
% page contentTypetext/html;charsetUTF-8 languagejava %
html
head
titleJSTL 快速入门/title
/head
body
h1JSTL 快速入门/h1
c:if test${ 10 2 }
h110 2 为真/h1
/c:if
/body
/html● taglib 引入标签要放在行首 ● 导入 jstl jar 包后要重新发布 web 工程否则不识别 jstl
❄️2. core 核心库
1.c:set / c:set / set 标签可以往域中保存数据 等价 域对象.setAttribute(key,value);scope 属性设置保存到哪个域 page 表示 PageContext 域默认值 request 表示 Request 域 session 表示 Session 域 application 表示 ServletContext 域var 属性设置 key 是什么value 属性设置值 2.c:if / c:if test“${ 10 2 }”hello/c:if if 标签用来做 if 判断。test 属性表示判断的条件用 EL 表达式输出 3.c:choose c:when c:otherwise标签 多路判断。跟 switch … case … default 非常接近 4.c:forEach /标签 介绍: c:forEach 标签 用来遍历输出, 主要有 4 种形式 ● 普通遍历输出 i 到 j ● 遍历数组 ● 遍历 Map ● 遍历 List items 表示遍历的集合 var 表示遍历到的数据 begin 表示遍历的开始索引值 ,从 0 开始计算 end 表示结束的索引值 step 属性表示遍历的步长值 varStatus 属性表示当前遍历到的数据的状态,可以得到 step,begin,end 等属性值