前言:
本文内容:JSP内置对象及作用域、JSP JSTL标签 EL表达式
推荐免费JavaWeb入门到实战视频:【狂神说Java】JavaWeb入门到实战_哔哩哔哩_bilibili
JSP内置对象及作用域
JSP 9大内置对象
- PageContext
- Request
- Response
- Session
- Application(ServletContext)
- config(ServletConfig)
- out
- page
- exception
页面取值得关系图
常用内置对象及作用域
1 2 3 4 5 6 7 8 9
| <%
pageContext.setAttribute("name1","张三"); request.setAttribute("name2","张三2"); session.setAttribute("name3","张三3"); application.setAttribute("name4","张三4"); %>
|
JSP、JSTL标签、EL表达式
EL表达式
表达式: ${value}
JSP标签
1 2 3 4 5 6 7 8
| <%--JSP标签--%> <%--<jsp:include page="header.jsp"></jsp:include>--%> <%--请求转发 携带参数--%> <%--jsp标签中间不要写注释--%> <jsp:forward page="/jspTag2.jsp"> <jsp:param name="person1" value="person1"/> <jsp:param name="person2" value="person2"/> </jsp:forward>
|
JSTL表达式
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
分为以下五大类:
- 核心标签(掌握)
- 格式化标签
- SQL 标签
- XML 标签
- JSTL 函数
核心标签
最常用的 JSTL标签。
1
| <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
标签 |
描述 |
<c:out> |
用于在JSP中显示数据,就像<%= … > |
<c:set> |
用于保存数据 |
<c:remove> |
用于删除数据 |
<c:catch> |
用来处理产生错误的异常状况,并且将错误信息储存起来 |
<c:if> |
与我们在一般程序中用的if一样 |
<c:choose> |
本身只当做<c:when> 和<c:otherwise> 的父标签 |
<c:when> |
<c:choose> 的子标签,用来判断条件是否成立 |
<c:otherwise> |
<c:choose> 的子标签,接在<c:when> 标签后,当<c:when> 标签判断为false时被执行 |
<c:import> |
检索一个绝对或相对 URL,然后将其内容暴露给页面 |
<c:forEach> |
基础迭代标签,接受多种集合类型 |
<c:forTokens> |
根据指定的分隔符来分隔内容并迭代输出 |
<c:param> |
用来给包含或重定向的页面传递参数 |
<c:redirect> |
重定向至一个新的URL |
<c:url> |
使用可选的查询参数来创造一个URL |
JSTL标签库使用步骤
- 引入对应的taglib
- 使用其中的方法
- 在Tomcat也需要引入jstl的包
核心标签练习
<c:if> <c:out>
练习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%--引入JSTL核心标签库--%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>if</title> </head> <body> <h1>if测试</h1> <hr> <%--${param.参数名} 表达式获取表单中的数据--%> <form action="jstl.jsp" method="get"> 姓名:<input type="text" name="username" value="${param.username}"> <input type="submit" value="提交"> </form> <%--如果提交的用户名是管理员 则登录成功--%> <c:if test="${param.username=='admin'}" var="isadmin" > <c:out value="管理员登录"/> </c:if> <c:out value="${isadmin}"/> </body> </html>
|
<c:choose> <c:when> <c:set>
练习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%--引入JSTL核心标签库--%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Choose</title> </head> <body>
<%--定义一个变量--%> <c:set var="score" value="90"></c:set> <%--通过choose判断--%> <c:choose> <c:when test="${score>=85}"> 你的成绩优秀 </c:when> <c:when test="${score>=60}"> 你的成绩一般 </c:when> <c:when test="${score>=0}"> 你的还需要努力 </c:when> </c:choose> </body> </html>
|
<c:forEach>
练习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%--引入JSTL核心标签库--%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html> <head> <title>forEach</title> </head> <body>
<%--定义一个数组--%> <% ArrayList<String> list=new ArrayList<String>(); list.add(0,"张三"); list.add(1,"李四"); list.add(2,"王五"); list.add(3,"赵六"); list.add(4,"小王"); request.setAttribute("list",list); %> <%--使用forEach遍历数组--%> <%--var:遍历出的值 item:便利的数组--%> <h2>用户信息:</h2> <c:forEach var="li" items="${list}"> <c:out value="${li}"/><br> </c:forEach> <hr> <%--begin:起始序列 end:结束序列 step:步长--%> <h2>用户信息:</h2> <c:forEach var="li" items="${list}" begin="1" end="3" step="2"> <c:out value="${li}"/><br> </c:forEach> </body> </html>
|
格式化标签
用来格式化并输出文本、日期、时间、数字。
1 2
| <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
SQL 标签
提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签
1 2
| <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
|
XML 标签
提供了创建和操作XML文档的标签。
1 2
| <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
|
在使用xml标签前,你必须将XML 和 XPath 的相关包拷贝至你的Tomcat 安装目录的lib下:
JSTL 函数
包含一系列标准函数,大部分是通用的字符串处理函数
1 2
| <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|