一、JSP 概述
JSP (全称: Java Server Pages ): Java 服务端页面。
是一种动态的网页技术,其中既可以定义 HTML 、 JS 、 CSS等 静态 内容,还可以定义 Java 代码的 动态 内容,也就是 JSP = HTML + Java 。
二、JSP 快速入门
(1)导入 JSP 坐标
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency>
(2)创建 JSP 文件
(3)编写 HTML 标签和 Java 代码
三、JSP 原理
JSP 本质上就是一个 Servlet 。
JSP在被访问时,由JSP容器(Tomcat)将某转换为Java文件(Servlet),再由JSP容器(Tomcat)将其编译,最终对外提供服务的其实就是这个字节码文件。
四、JSP 脚本
JSP 脚本用于在 JSP 页面内定义 Java 代码。
JSP 脚本有如下三个分类:(1)<%...%> :内容会直接放到 _jspService() 方法之中(2)<%=…%> :内容会放到 out.print() 中,作为 out.print() 的参数(3)<%!…%> :内容会放到 _jspService() 方法之外,被类直接包含
五、EL 表达式
EL (全称 Expression Language )表达式语言,用于简化 JSP 页面内的 Java 代码。
EL 表达式的主要作用是 获取数据 。
而 EL 表达式的语法也比较简单, ${expression} 。例如: ${brands} 就是获取域中存储的 key 为 brands 的数据。<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> ${brands} </body> </html>
JavaWeb 中有四大域对象,分别是:(1)page :当前页面有效(2) request:当前请求有效(3) session:当前会话有效(4)application :当前应用有效el 表达式获取数据,会依次从这 4 个域中寻找,直到找到为止。
六、JSTL 标签
JSP 标准标签库 (Jsp Standarded Tag Library) ,使用标签取代 JSP 页面上的 Java 代码。<c:if test="${flag == 1}"> 男 </c:if> <c:if test="${flag == 2}"> 女 </c:if>
JSTL 提供了很多标签
(1)导入坐标
<dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
(2)在JSP页面上引入JSTL标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Title</title> </head> <body> <%-- c:if:来完成逻辑判断,替换java if else --%> <c:if test="${status ==1}"> 启用 </c:if> <c:if test="${status ==0}"> 禁用 </c:if> </body> </html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="button" value="新增"><br> <hr> <table border="1" cellspacing="0" width="800"> <tr> <th>序号</th> <th>品牌名称</th> <th>企业名称</th> <th>排序</th> <th>品牌介绍</th> <th>状态</th> <th>操作</th> </tr> <c:forEach items="${brands}" var="brand" varStatus="status"> <tr align="center"> <%--<td>${brand.id}</td>--%> <td>${status.count}</td> <td>${brand.brandName}</td> <td>${brand.companyName}</td> <td>${brand.ordered}</td> <td>${brand.description}</td> <c:if test="${brand.status == 1}"> <td>启用</td> </c:if> <c:if test="${brand.status != 1}"> <td>禁用</td> </c:if> <td><a href="#">修改</a> <a href="#">删除</a></td> </tr> </c:forEach> </table> <hr> <c:forEach begin="1" end="10" step="1" var="i"> <a href="#">${i}</a> </c:forEach> </body> </html>
七、MVC 模式和三层架构
1. MVC 模式
MVC 是一种分层开发的模式,其中:M : Model ,业务模型,处理业务V : View ,视图,界面展示C : Controller ,控制器,处理请求,调用模型和视图
2. 三层架构
三层架构是将我们的项目分成了三个层面,分别是 表现层 、 业务逻辑层 、 数据访问层 。