【JavaWeb】JSP、EL和JSTL

目录

一、JSP的回顾

1.什么是JSP

2.JSP由来

3.JSP的运行原理

4.JSP脚本元素

二、JSP的模板修改和注释

1.修改JSP的字符集编码

2.JSP的注释

2.1HTML的注释

2.2Java代码的注释

2.3JSP注释

三、JSP的指令元素的概述

1.JSP指令元素作用

2.JSP指令元素的语法

3.JSP指令元素的分类

4.JSP的指令-page指令

4.1Page指令简介

4.2Page指令属性

4.3JSP的指令-include

5.Taglib指令

1.Taglib指令简介

2.Taglib指令属性

四、JSP的内置对象

1.什么是JSP的内置对象

2.JSP的内置对象有哪些

3.JSP的内置对象具体类型

五、pageContext对象的概述

1.pageContext对象简介

2.pageContext对象作用

 六、JSP的四个作用范围

1.JSP的四个作用范围概述

2.JSP的四个作用范围演示

2.1pageContext对象向四个域范围存取数据

2.2findAttribute方法:

七、JSP的动作标签

1.什么是JSP的动作标签

2.常用的动作标签

3.静态包含和动态包含区别

4.动态包含的原理

八、EL的概述

1.什么是EL

2.EL作用(为什么要学习EL)

3.EL功能

4.EL语法

5.EL获取数据

5.1EL如何获取数据

5.2演示EL获取数据

5.3EL获取数组和集合中的数据

5.4EL执行运算

5.5EL获取web开发常用对象

 九、JSTL的概述

1.什么是JSTL

2.为什么学习JSTL

3.JSTL的版本

4.JSTL的标签库

5.JSTL的入门

5.1引入JSTL的jar包

5.2新建JSP页面

5.3引入标签库

5.4使用JSTL

5.5JSTL的if标签

5.6if标签的属性

5.7JSTL的foreach标签

 十.案例准备

1.创建web项目

2.引入相关的jar包

3.创建包结构,引入工具类

4.创建数据库和表

5.创建实体类

6.创建Servlet

7.创建Model的对象

8.编写list.jsp

9.运行效果


一、JSP的回顾

1.什么是JSP

JSP:Java Server Pages Java服务器端页面。

JSP 就是 HTML + Java代码 + JSP自身东西。

2.JSP由来

Servlet技术生成动态网页的时候很麻烦,需要通过response获得输出流,调用print方法进行打印的。这种编程方式很麻烦,而且美工也不容易处理。SUN公司为了简化动态网页开发,推出JSP。

3.JSP的运行原理

JSP在执行时,会被服务器翻译为Servlet编译执行,JSP就是一个Servlet。

4.JSP脚本元素

<%!  %>    :JSP声明 翻译成 Servlet成员部分的内容。声明变量,方法,内部类。

<%= %>    :翻译out.print(),在service方法内部。用于生成HTML页面源码。

<%    %>    :嵌入Java代码 翻译成service方法内部的代码块。声明变量,内部类。

二、JSP的模板修改和注释

1.修改JSP的字符集编码

2.JSP的注释

2.1HTML的注释

  1. 写法 : <!--HTML的注释 -->
  2. 存在时机 :存在JSP的源码中,翻译成Servlet后这个注释也存在,在生成HTML响应到页面的时候这个注释也会存在。

2.2Java代码的注释

2.2.1.写法:

<%

// 单行注释

/* 多行注释 */

/**文档注释*/

%>

2.2.2.存在时机:存在JSP的源码中,翻译成Servlet后Java代码的注释也会存在,但是生成HTML响应到页面后,这种注释就消失了。

2.3JSP注释

2.3.1.写法:<%-- JSP的注释 --%>

2.3.2.存在时机:存在JSP的源码中,翻译Servlet后注释就没有了。

注意:Java代码注释的话不要使用HTML的注释!!!

三、JSP的指令元素的概述

1.JSP指令元素作用

  1. 用于指示JSP执行的某些步骤
  2. 用于指示JSP变现特定行为

2.JSP指令元素的语法

  1. 语法 : <%@ 指令名称 属性名称=属性的值 属性名称=属性的值 %>

3.JSP指令元素的分类

  1. page指令:指示JSP的页面设置属性和行为
  2. include指令:指示JSP包含哪些其他页面
  3. taglib指令:指示JSP页面包含哪些标签库

4.JSP的指令-page指令

4.1Page指令简介

4.1.1.写法<%@ page 属性名=属性值 %>

4.1.2.Page指令用来定义JSP文件的全局属性。

4.1.3.这些属性可以单独使用,也可以几个或多个同时使用。

4.1.4.在JSP页面中,只有import属性可以出现多次,其他属性都只能出现一次。

4.2Page指令属性

  1. language属性:       声明使用脚本的语言。只能是java。
  2. extends属性:         标明JSP编译成Servlet的时候继承的类。默认值:HttpJspBase。
  3. session属性:          标明JSP中是否可以直接使用session对象。默认值是true。
  4. buffer属性:            标明JSP对客户端输出缓冲区大小。默认值8kb。
  5. autoFlush属性:     如果缓冲区大小溢出,是否自动刷出。默认true。
  6. import属性:          用于导入Java包或类。
  7. contentType属性:标明JSP被浏览器解析和打开的时候采用的默认的字符集。
  8. pageEncoding属性:JSP文件及JSP翻译后的Servlet保存到硬盘上采用字符集。
  9. isErrorPage属性:  处理JSP页面异常。
  10. errorPage属性:     处理JSP页面异常。
  11. isELIgnored属性:  通知JSP是否忽略EL表达式。

4.3JSP的指令-include

4.3.1.Include指令简介

  • 写法:<%@ include 属性名=属性值%>
  • 作用:在JSP页面中静态包含一个文件,同时由该JSP解析包含的文件内容。

4.3.2.Include指令属性

  • file属性 : 指示JSP页面包含页面路径。

4.3.3.Include指令原理(静态包含原理)

 注意地方:

  • 应该将被包含的页面的结构去掉
  • 在被包含的页面中定义变量,在包含的页面中还可以使用。

5.Taglib指令

1.Taglib指令简介

写法:  <%@ taglib 属性名=属性值%>

作用:用于在JSP页面中引入标签库。

2.Taglib指令属性

uri属性: 引入的标签库的路径

prefix属性:   引入标签库的别名

四、JSP的内置对象

1.什么是JSP的内置对象

JSP的内置对象:指的是可以直接在JSP页面中使用的对象。

2.JSP的内置对象有哪些

JSP当中有9大内置对象:

  1. request               :从客户端向服务器发送的请求对象
  2. response            :从服务器端向客户端作出响应对象
  3. session                :服务器为客户端创建会话对象
  4. application         :代表应用。获得的ServletContext对象。
  5. out                       :向输出流写入内容的对象。
  6. page                    :当前的JSP翻译成Servlet后的对象的引用。
  7. pageContext      :本JSP的页面的上下文对象。
  8. config                  :本JSP的ServletConfig对象。
  9. exception           :表示JSP页面运行时产生的异常对象。

3.JSP的内置对象具体类型

  1. request               HttpServletRequest
  2. response            HttpServletResponse
  3. session                HttpSession
  4. application         ServletContext
  5. config                  ServletConfig
  6. page                    Object
  7. pageContext      PageContext
  8. out                       JspWriter
  9. exception           Throwable

五、pageContext对象的概述

1.pageContext对象简介

pageContext对象直接翻译为“页面上下文”对象,代表的是当前页面运行的一些属性。

它是javax.servlet.jsp.PageContext类的实例对象。

2.pageContext对象作用

2.1.提供了page范围的数据存取的方法:

  • 向page范围中存入数据:
  • 从page范围获取数据
  • 从page范围移除数据
  •  查找属性的方法:

2.2.通过这个对象获得其他的8个内置对象:

  • 获得其他8个内置对象的方法

 六、JSP的四个作用范围

1.JSP的四个作用范围概述

1.1.PageScope :页面范围。

页面范围指的是在当前的页面内有效,出了这个页面,用pageContext保存的数据就无效了。

1.2.RequestScope :请求范围。

从客户端向服务器发送一次请求,服务器对这次请求作出了响应之后,用request保存的数据就无效了。

1.3.SessionScope :会话范围

每个浏览器向服务器发送请求(多次请求)。将该会话结束。

1.4.ApplicationScope :应用范围。

在整个应用中任意的地方都可以获取。

2.JSP的四个作用范围演示

2.1pageContext对象向四个域范围存取数据

2.2findAttribute方法:

查找属性方法:先根据小范围的名称进行查找,如果找到了就返回,如果没有找到就会去比其大一个域的范围进行查找。

七、JSP的动作标签

1.什么是JSP的动作标签

JSP的动作标签用于在JSP页面中提供业务逻辑功能,避免在JSP页面中直接编写Java代码,造成jsp页面难以维护。

2.常用的动作标签

  1. <jsp:forward/> :请求转发。
  2. <jsp:include/>:包含(动态包含)。
  3. <jsp:param/>:传递参数。

3.静态包含和动态包含区别

4.动态包含的原理

八、EL的概述

1.什么是EL

2.EL作用(为什么要学习EL)

EL和JSTL一起使用取代JSP页面中嵌入Java代码写法。

3.EL功能

  1. EL获取数据
  2. EL执行运算
  3. EL获取web开发常用的对象
  4. EL调用Java方法

4.EL语法

  1. 语法:${ EL表达式 }

5.EL获取数据

5.1EL如何获取数据

EL表达式语句在执行的时候,会调用pageContext.findAttribute()方法。分别从page、request、session、application范围查找相应对象,找到就会返回相应对象,找不到返回””(不是null,是空的字符串)。EL所获取的数据需要在四个作用范围中。

5.2演示EL获取数据

${name}EL表达式是先从小范围查找,找不到的话,会扩大范围查找,就是上文讲的findAttribute()特性。

5.3EL获取数组和集合中的数据

5.3.1获取数组的数据

 5.3.2获取List集合的数据

5.3.3获取Map集合的数据

 注意:如果map的key中包含了特殊字符,不能使用 . 必须使用[]

  • . 用来获取对象的属性的。
  • [] 用来获得下标。

5.4EL执行运算

5.4.1执行算数运算

5.4.2执行关系运算

5.4.3执行逻辑运算

5.4.4执行三元运算

5.4.5empty运算符

5.5EL获取web开发常用对象

EL表达式定义了11个web开发常用对象。使用这些对象可以很方便获取web开发冲的一些常见对象,并可以读取这些对象中的数据。

  1. pageContext               :相当于JSP内置对象中pageContext
  2. pageScope                  :获取指定域下的名称的数据
  3. requestScope             :获取指定域下的名称的数据
  4. sessionScope             :获取指定域下的名称的数据
  5. applicationScope      :获取指定域下的名称的数据
  6. param                           :在页面中接收请求参数(接收一个名称对应一个值参数)。
  7. paramValues               :在页面中接收请求参数(接收一个名称对应多个值参数)。
  8. header                         :在页面上获取请求头(获取一个key对应一个value 头)
  9. headerValues             :在页面上获取请求头(获取一个key对应多个value 头)
  10. cookie                          :访问cookie的名称和值(${cookie.key.name} ${cookie.key.value})
  11. initParam                     :获取全局初始化参数的值

 九、JSTL的概述

1.什么是JSTL

 JSTL:JSP的标准标签库。

2.为什么学习JSTL

主要和EL来取代传统页面上直接嵌入Java代码写法。提升程序可读性、维护性和方便性。

3.JSTL的版本

JSTL1.0、JSTL1.1和JSTL1.2版本

  1. 1.0版本不支持EL表达式。
  2. 1.11.2支持了EL表达式。

4.JSTL的标签库

  1. c标签(core标签库)
  2. fmt标签(国际化标签库)
  3. xml标签
  4. sql标签
  5. jstl函数库(EL函数)

5.JSTL的入门

5.1引入JSTL的jar包

5.2新建JSP页面

5.3引入标签库

5.4使用JSTL

5.5JSTL的if标签

5.6if标签的属性

  1. test属性  :条件
  2. var属性    :将test中的条件的值赋给一个变量,在var中定义变量
  3. scope属性:作用范围

5.7JSTL的foreach标签

 十.案例准备

1.创建web项目

2.引入相关的jar包

3.创建包结构,引入工具类

4.创建数据库和表

create database web04_student;
use web04_student;
create table student(
	sid int primary key auto_increment,
	sname varchar(20),
	sex varchar(10),
	age int
);
insert into student values (null,'张三','男',20);
insert into student values (null,'李四','女',23);
insert into student values (null,'王五','女',18);
insert into student values (null,'赵六','男',25);
insert into student values (null,'孙七','男',21);

5.创建实体类

6.创建Servlet

7.创建Model的对象

8.编写list.jsp

9.运行效果

猜你喜欢

转载自blog.csdn.net/wang_qiu_hao/article/details/126712001