java补完——JSP、EL表达式、JSTL标签(未完成)

文章说明:黑色字体-已知,蓝色字体-所见即所得,红色字体-还需要再找资料弄明白的,黄色背景-提炼关键信息
参考资料:很多参考资料,段落下有原文链接到原作者
声明:JSP简介和JSP发展史写的太过复杂,都是废话,JSP就是一个可以写HTTP标签和JAVA代码的JSP文件,由servlet进化而来,底层是servlet,然后看JSP具体除了HTTP代码和JAVA代码还写什么就行了,最多在看JSP之前看下sevlet。EL和JSTL是为了简化JSP的JAVA代码。

JSP简介

  • HTTP:静态页面
    固定不变的页面。(直接从服务器发送给用户写好的页面。)
    用来描述网页,是标记语言,而非编程语言。
    直接运行。可直接打开。

  • JSP(Java Server Pages):动态页面。与ASP(微软的动态页面技术)类似。
    显示内容因人而异。(通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。)
    是网页编程语言。
    运行时转换成servlet。需要发布到服务器。需要JDK编译。
    表头<%@ page language=”java” import=”java.util.*” pageEncoding=”gbk”%>在表头中有编码格式和倒入包等。

  • JSP使用
    servlet也是动态页面实现技术,JSP解决了servlet的缺陷(需要配置,向网页输出HTML页面内容困难),本质也是一个servlet。
    在标签<%和%>之间插入java代码。
    JSP在后台通过服务器解析为相应的html,然后在供浏览器识别显示。
    JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

JSP发展史

  • JSP的出现为了解决Servlet在响应时不适合向外输出页面的问题
    Servlet适合处理逻辑,处理的结果太适合由Servlet向外输出(不适合输出完整的html页面)。
    Html展示数据。本质是一个文档(静态资源),无法展示动态的数据。
    jsp适合编写html代码、作为响应页面向外输出,同时可以写java代码、展示动态的数据。
    jsp在第一次访问时,被翻译成Servlet,访问jsp后看到的页面,是翻译后的Servlet在向外输出。
  • JSP的第1代开发技术:纯JSP技术
  • JSP的第2代开发技术:JSP+EJB
  • JSP的第3.1代开发技术(MVC):JSP+servlet+EJB(Model1)
  • JSP的第3.2代开发技术(MVC):JSP+servlet+JavaBean+service(Model2)
  • 各版本详细实现代码:https://blog.csdn.net/qq_34928644/article/details/82556284

JSP应用

JSP指令

作用:用于配置JSP页面,导入资源文件。
格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 … %>
分类:
page:配置JSP页面。
contenType:等同于response.setContentType()。

  • 设置响应体的mime类型以及字符集
  • 设置当前JSP页面的编码(高级IDE,如果是低级编译器,需要设置 pageEncoding 属性来设置字符集)

import:导包。
errorPage:当前页面发生异常后,会自动跳转到指定的错误提示页面。
isErrorPage:标识当前页面是否为错误页面。

  • true:是,可以使用内置对象 exception
  • false:否,默认值,不可以使用内置对象 exception

include:导入页面资源文件。
<%@include file=“top.jsp”%>
taglib:导入资源。
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

JSP注释

<!-- -->:只能注释HTML代码片段
<%-- --%>:可以注释所有代码片段

JSP九大内置对象

在JSP页面中不需要创建,可以直接使用的JSP九大内置对象。
变量名——真实类型——作用
pageContext——PageContext——当前页面共享数据,可以获取其他 8 个对象
request——HttpServletRequest——一次请求访问的多个资源(转发)
session——HttpSession——一次会话的多个请求
application——ServletContext——所有用户间数据共享
response——HttpServletResponse——响应对象
page——Object——当前页面(Servlet)对象
out——JspWrite——输出对象,输出数据到页面上
config——ServletConfig——Servlet的配置对象
exception——Throwable——异常对象

EL表达式

定义:Expression Language(表达式语言),主要替换和简化JSP页面中的java代码。
语法:${表达式}
忽略JSP中所有EL表达式的指令:isElignored=“true”
忽略当前的EL表达式:\${表达式}
EL使用
1、运算符

  • 算数运算符:+ - * /(div) %(mod)
  • 比较运算符:> < >= <= == !=
  • 逻辑运算符:&&(and)||(or)!(not)
  • 空运算符:empty
    ${empty str}:判断字符串,集合数组对象是否为null或者长度是否为 0
    ${not empty str}:判断字符串、集合、数组对象是否不为null且长度大于 0

2、获取值

  • EL 表达式只能从域对象中获取值。
  • 格式:
${域名称.键名}<!--从指定的域中获取指定的键值。-->

域——对应的域名称
pageContext——pageScope
request——requestScope
session——sessionScope
application——applicationScope

${键名}<!--表示依次从最小的域中查找是否有该键对应的值-->
  • 获取对象:${域名称.键名.属性名}
    本质上是调用Javabean中的getter方法
  • 获取 List 集合:${域名称.键名[索引]}
    获取 Map 集合
    ${域名称.键名.key名称}
    ${域名称.键名[“key名称”]}

3、隐式对想
EL表达式中有11个隐式对象,主要说pageContext。
pageContext主要功能有:
获取 JSP 其他八个内置对象

JSTL标签

JSTL 标签(JavaServer Pages Tag Library),即JSP标准标签库,是由 Apache 组织提供的开源免费的JSP标签,主要是用来简化和替换JSP页面上的Java代码,具体使用步骤如下:
导入jstl相关jar包
引入标签库:taglib指令引入:<%@ taglib %>
使用标签
1、if 标签
属性:test 属性,为必须属性,接受 boolean 表达式
一般情况下,test属性值会结合 EL 表达式一起使用
if 标签没有else情况,如果想要else效果,可以定义多个 if 标签
2、choose 标签
choose 标签就相当于switch 语句,switch 需要配合 case、default 来使用,而choose则需要配合when、otherwise 来使用
使用choose标签声明:相当于 switch 声明
使用 when 标签做判断:相当于 case
使用 otherwise 标签做其他情况的声明:相当于default
3、 foreach 标签
【1】完成重复操作
属性
begin:开始值
end:结束值
var:临时变量
step:步长
varStatus:循环状态对象
index:容器中元素的索引,从 0 开始
count:循环次数,从 1 开始
【2】遍历容器
属性
items:容器对象
var:容器中元素的临时变量
varStatus:循环状态对象
index:容器中元素的索引,从 0 开始、
count:循环次数,从 1 开始

原文链接:https://blog.csdn.net/yangdan1025/article/details/82153426
原文链接:https://blog.csdn.net/weixin_41704733/article/details/79980487
原文链接:https://blog.csdn.net/One_L_Star/article/details/100520438

发布了9 篇原创文章 · 获赞 0 · 访问量 195

猜你喜欢

转载自blog.csdn.net/weixin_44470080/article/details/104395030
今日推荐