JSP

  • JSP(JavaServer Pages):由Sun Microsystems公司主导创建的一种动态网页技术标准。

指令:

  • 格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
  • 作用:配置JSP页面,导入资源文件。
  • 分类:
  1. include:页面包含,主要用于导入页面的资源文件。
  • <%@include file="top.jsp"%>
  1. page:配置JSP页面。
  • contentType:等同于response.setContentType()
  1. 配置响应体的mime类型以及字符集。
  2. 配置当前JSP页面的编码(只有使用高级的集成编译器才能生效,否则需要设置pageEncoding属性设置当前页面的字符集)。
  • import:导包
  • errorPage:当前页面发生异常之后会自动跳转到指定的错误页面。
  • isErrorPage:标识当前展示是否为错误页面。
  • true:是,可以使用内置对象exception。
  • false:否,默认值。不可以使用内置对象exception。
    3.taglib:导入资源
  • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • prefix:前缀,自定义。

注释:

  • JSP注释:
    <%…%>:可以注释所有。
  • html注释:
  • <!..>:只能注释html代码片段。

内置对象:

  • 再JSP页面中不需要创建,直接使用的对象。
    在这里插入图片描述

MVC

MVC(开发模式):

  1. M[Model(模型):JavaBean]:完成具体的业务操作(eg:查询数据库,封装对象)
  2. V[View(视图):JSP]:展示数据。
  3. C[Controller(控制器):Servlet]:
  • 获取用户的输入
  • 调用模型
  • 将数据交给视图进行展示
  • 优缺点:

在这里插入图片描述
在这里插入图片描述

EL表达式

  • EL表达式(Expression Language)[表达式语句]:简化和替换JSP页面中Java代码的编写。
  • 语法:${表达式}
  • 注意:JSP默认支持EL表达式。当需要忽略EL表达式时:
  • 设置JSP的page指令:isElgnored=“true” 忽略当前JSP页面中所有的EL表达式。
  • \${表达式}:忽略当前的这个EL表达式。

使用:

1.运算:

  • 运算符
    1. 算数运算符: + - * /(div) %(mod)
    2. 比较运算符: > < >= <= == !=
    3. 逻辑运算符: &&(and) ||(or) !(not)
    4. 空运算符: empty
    * 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
  • ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0。
  • ${not empty str}:表示判断字符串、集合、数组对象是否不为null并且长度>0。

2. 获取值:

  • :EL表达式只能从与对象中获取值
  • 语法
  1. ${域名称.键名}:从指定域中获取指定键的值。
    * eg:在request域中存储了name=李伟
    * 获取:${requestScope.name}
    在这里插入图片描述

  2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。

  3. 获取对象、List集合、Map集合的值:

  1. 对象:${域名称.键名.属性名}(本质上会去调用对象的getter方法。)
  2. List集合:${域名称.键名[索引]}
  3. Map集合:
  • ${域名称.键名.key名称}
  • ${域名称.键名["key名称"]}

3.隐式对象:

  • 注:EL表达式中有11个隐式对象
  • pageContext【获取JSP其他八个内置对象】:${pageContext.request.contextPath}(动态获取虚拟目录)

三层架构

  • 三层架构:软件设计架构
    1.界面层(表示层):用户看得到的界面。(用户能通过界面上的组件和服务器进行交互)。
    2.业务逻辑层:处理业务逻辑。
    3.数据访问层:操作数据存储文件。
    在这里插入图片描述

JSTL

  • JSTL(Java Server Pages Tag Library [JSP标准标签库]):由Apache组织提供的开源且免费的JSP标签。
  • 步骤
    在这里插入图片描述
  • 常用的JSTL标签
  1. 赋值标签<c:set>(用于给变量或对象属性赋值)
    格式:
  • <c:set value="变量值" var="变量名" [scope="{page|request|session|application}"]>
  • <c:set var="变量名" [scope="{page|request|session|application}"]>
    变量值
    </c:set>
  • <c:set value="属性值" target="对象名" property="属性名"/>
  • <c:set target="对象名" property="属性名">
    属性值
    </c:set>

  • valu属性:其赋值给变量或对象属性
  • var属性:指定变量名称
  • scope属性:指定变量范围,默认值为page
  • target属性:指定对象名称
  • property属性:指定对象属性名称
  1. 条件标签<c:if>(用于实现条件测试)
    格式:
  • <c:if test="测试条件" var="变量名" [scope="{page|request|session|application}"]/>
  • <c:if test="测试条件" [var="变量名"] [scope="{page|request|session|application}"]>
    嵌套代码
    </c:if>

  • test:属性指定测试条件,接受boolean表达式
  • var:属性指定保存测试条件的计算结果
  • scope:属性指定var变量的范围,默认值为page
  • c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签
  • 表达式为true,则显示if标签体内容; 为false,则不显示标签体内容
  1. 选择标签<c:choose><c:when><c:otherwise> (用于属性多分支条件测试)

格式:
<c:choose>
[<c:when test="测试条件1">
嵌套代码1
</c:when>
<c:when test="测试条件2">
嵌套代码2
</c:when>]
.....
[<c:otherwise>
嵌套代码n
</c:otherwise>]
</c:choose>

  • <c:choose>标签包含多个<c:when>标签和一个<c:otherwise>标签,<c:otherwise>标签必须放在所有<c:when>标签后。
  • 测试条件计算为true时,执行对应的嵌套代码;当没有<c:when>标签测试条件计算为true时,执行<c:otherwise>标签内的嵌套代码。

在这里插入图片描述
4.迭代标签:<c:foreach>(用于实现集合与数组迭代,也可实现固定次数的迭代)

格式:

  1. 迭代集合或数组:
    <c:forEach [var="变量名"] items="迭代对象" [varStatus="状态变量名"] [begin="初值"] [end="终值"] [step="步长"]>
    嵌套代码
    </c:forEach>
  2. 固定次数迭代:
    <c:forEach [var="变量名"] [varStatus="状态变量名"] [begin="初值"] [end="终值"] [step="步长"]>
    嵌套代码
    </c:forEach>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐