JSP(JavaServer Pages)是一种用于创建动态网页的技术。它是由Sun Microsystems(现为Oracle)开发的,基于Java编程语言。JSP允许开发者在HTML中嵌入Java代码,从而实现动态生成网页内容的功能
JSP本质上就是一个Servlet JSP在被访问时, 由JSP容器( TomCat )将其转换成Java文件(Servlet), 再由JSP容器( TomCat )将其编译, 最终对外服务的其实是个字节码文件
JSP脚本分类
- <%... %>
内容会直接放到_jspService()方法中 相当于一条普通的语句
- <%=...%>
内容会被放到_jspService()方法中的out.print()中
作为out.print()的参数直接输出在web页面 - <%!...%>
内容会放到_jspService()方法之外, 被类直接包含(可以自定义成员方法和成员变量)
//写出来的代码非常难以阅读
<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>
<%
for (int i = 0; i < brands.size(); i++) {
Brand brand = brands.get(i);
%>
<tr align="center">
<td><%=brand.getId()%>
</td>
<td><%=brand.getBrandName()%>
</td>
<td><%=brand.getCompanyName()%>
</td>
<td><%=brand.getOrdered()%>
</td>
<td><%=brand.getDescription()%>
</td>
<%
if (brand.getStatus() == 1) {
//启用
%>
<td><%="启用"%>
</td>
<%
} else {
//没启用
%>
<td><%="未启用"%>
</td>
<%
}
%>
<td><a href="#">修改</a> <a href="#">删除</a></td>
</tr>
<%
}
%>
</table>
</body>
JavaWeb中的四大域对象
- page: 当前页面有效
- request: 当前请求有效
- session: 当前会话有效
- application: 当前应用有效
EL表达式
Expression Language 表达式语言, 用于简化JSP页面内的JAVA代码
需要引入:
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
jsp页面代码中还需要加入:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"%>
主要功能: 获取数据
语法: ${expression}
${expression} :获取域中存储的key为brands的数据
el表达式 获取数据, 会依次从这4个域中寻找, 直到找到为止
JSTL标签
JSP标准标签库, 使用标签取代JSP页面上的Java代码
导入坐标:
<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>
JSP页面上引入JSTL标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
if标签
<c:if test="${status == 1}">
<h1>启用</h1>
</c:if>
<c:if test="${status == 0}">
<h1>禁用</h1>
</c:if>
<c:if test="${status == 2}">
<h1>什么鬼...</h1>
</c:if>
foreach标签
<c:forEach items="${brands}" var="brand" varStatus="status">
<tr align="center">
<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>
<c:forEach begin="0" end="10" step="1" var="i">
<a href="https://nmslog.mxy520.online">${i}</a>
</c:forEach>