<meta charset="utf-8">
JSP
- 指令
作用:用于配置JSP頁面,導(dǎo)入資源文件
格式:<%@ 指令名稱 屬性名1=屬性值1 屬性名2=屬性值2 ... %>
分類:
page相關(guān)
- page: 配置JSP頁面的, *contentType:等同于response.setContentType();1. 設(shè)置響應(yīng)體的mime類型以及字符集, 2. 設(shè)置當(dāng)前jsp頁面的編碼(只能是高級的IDE才能生效复局,如果使用低級工具,則需要設(shè)置pageEncoding屬性設(shè)置當(dāng)前頁面的字符集)
- import:導(dǎo)包
- errorPage:當(dāng)前頁面發(fā)生異常后衰伯,會(huì)自動(dòng)跳轉(zhuǎn)到指定的錯(cuò)誤頁面
- isErrorPage:標(biāo)識當(dāng)前也是是否是錯(cuò)誤頁面。true:是积蔚,可以使用內(nèi)置對象exception, * false:否。默認(rèn)值烦周。不可以使用內(nèi)置對象exception
include
include : 頁面包含的尽爆。導(dǎo)入頁面的資源文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="top.jsp"%>
top.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>這是頭部</h1>
</body>
</html>
taglib 導(dǎo)入資源
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> prefix:前綴,自定義的
注釋:
1. html注釋:
:只能注釋html代碼片段
2. jsp注釋:推薦使用
<%-- --%>:可以注釋所有
內(nèi)置對象: 在jsp頁面中不需要?jiǎng)?chuàng)建读慎,直接使用的對象
一共有9個(gè):
變量名 真實(shí)類型 作用
pageContext PageContext 當(dāng)前頁面共享數(shù)據(jù)漱贱,還可以獲取其他八個(gè)內(nèi)置對象
request HttpServletRequest 一次請求訪問的多個(gè)資源(轉(zhuǎn)發(fā))
session HttpSession 一次會(huì)話的多個(gè)請求間
application ServletContext 所有用戶間共享數(shù)據(jù)
response HttpServletResponse 響應(yīng)對象
page Object 當(dāng)前頁面(Servlet)的對象 this
out JspWriter 輸出對象,數(shù)據(jù)輸出到頁面上
config ServletConfig Servlet的配置對象
exception Throwable 異常對象
EL表達(dá)式
- 概念:Expression Language 表達(dá)式語言
- 作用:替換和簡化jsp頁面中java代碼的編寫夭委、
- 語法:${表達(dá)式}
- 注意:
jsp默認(rèn)支持el表達(dá)式的幅狮。如果要忽略el表達(dá)式
設(shè)置jsp中page指令中:isELIgnored="true" 忽略當(dāng)前jsp頁面中所有的el表達(dá)式
${表達(dá)式} :忽略當(dāng)前這個(gè)el表達(dá)式
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
Created by IntelliJ IDEA.
User: Eric
Date: 2020/8/31
Time: 08:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="true" %>--%>
<html>
<head>
<title>Title</title>
</head>
<body>
${3>4}
<br>
\${3>4}
<br>
<h3>算術(shù)運(yùn)算符</h3>
${3+4}
${3*4}
${3/4}
${3%4}
${3 mod 4}
<h3>比較運(yùn)算符</h3>
${3==4}
<h3>邏輯運(yùn)算符</h3>
${3>4 && 3<4}
${3>4 and 3<4}
<h3>empty運(yùn)算符</h3>
<%
String str = "";
request.setAttribute("str", str);
List<String> list = new ArrayList<>();
list.add("haha");
request.setAttribute("list", list);
%>
<%--${empty }--%>
${empty str}
${empty list}
${not empty str}
${not empty list}
</body>
</html>
獲取值
- el表達(dá)式只能從域?qū)ο笾蝎@取值
- 語法:
- ${域名稱.鍵名}:從指定域中獲取指定鍵的值
- 域名稱:
1. pageScope --> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
<%--
Created by IntelliJ IDEA.
User: Eric
Date: 2020/8/31
Time: 09:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
// 在域中存儲(chǔ)數(shù)據(jù)
session.setAttribute("name", "李四");
request.setAttribute("name", "張三");
session.setAttribute("age", "23");
request.setAttribute("str", "");
%>
<h3>el獲取值</h3>
${requestScope.name}
${sessionScope.name}
${sessionScope.age}
${name}
</body>
</html>
${鍵名}:表示依次從最小的域中查找是否有該鍵對應(yīng)的值,直到找到為止株灸。
-
獲取對象崇摄、List集合、Map集合的值
-
對象:${域名稱.鍵名.屬性名}
-
本質(zhì)上會(huì)去調(diào)用對象的getter方法
· 2. List集合:${域名稱.鍵名[索引]}
Map集合:
{域名稱.鍵名["key名稱"]}
-
-
<%@ page import="neusoft.el.User" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: Eric
Date: 2020/8/31
Time: 09:35
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
User user = new User();
user.setName("小桌子");
user.setAge(23);
user.setBirthday(new Date());
request.setAttribute("u", user);
List<Object> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add(user);
request.setAttribute("list", list);
HashMap<String, Object> map = new HashMap<>();
map.put("sname", "趙四");
map.put("gender", "男");
map.put("user", user);
request.setAttribute("map", map);
%>
<h1>el獲取對象中的值</h1>
${requestScope.u}
<%-- 對象屬性獲取
setter 或者 getter方法 去掉 set和get
將剩余部分首字母變?yōu)樾? getName() ---> Name ----> name
--%>
${requestScope.u.name}<br>
${u.age} <br>
${u.birthday}<br>
<h3>獲取list值</h3>
${requestScope.list}
${list}
${list[0]}
${list[2]}
${list[2].name}
<h5>list[10]</h5>
${list[10]}
<h3>獲取map值</h3>
${requestScope.map}
${map}
${map.gender}
${map["gender"]}
${map.user.name}
</body>
</html>