Linux Centos7yum安裝Mysql8.0.21
1.EL 表示式概述
EL(Express Lanuage)表示式可以嵌入在jsp頁面內部,減少jsp指令碼的編寫,EL 出現的目的是要替代jsp頁面中指令碼的編寫。
2. EL從域中取出資料(EL最重要的作用)
jsp指令碼:<%=request.getAttribute(name)%>
EL表示式替代上面的指令碼:${requestScope.name}
EL最主要的作用是獲得四大域中的資料,格式${EL表示式}
EL獲得pageContext域中的值:${pageScope.key};
EL獲得request域中的值:${requestScope.key};
EL獲得session域中的值:${sessionScope.key};
EL獲得application域中的值:${applicationScope.key};
EL從四個域中獲得某個值${key};
---同樣是依次從pageContext域,request域,session域,application域中 獲取屬性,在某個域中獲取後將不在向後尋找
1)獲得普通字串
2)獲得User物件的值
3)獲得List<User>的值
<!-- 模擬域中的資料 --> <% pageContext.setAttribute("name", "pageContxt"); //儲存字串 request.setAttribute("name", "request"); //儲存一個物件 Users user=new Users(); user.setId(1); user.setUsername("lisi"); user.setPwd("123"); session.setAttribute("user", user); //儲存一個集合 List<Users> list=new ArrayList<Users>(); Users user1=new Users(); user1.setId(1); user1.setUsername("wangwu"); user1.setPwd("123"); list.add(user1); Users user2=new Users(); user2.setId(1); user2.setUsername("zhaoliu"); user2.setPwd("123"); list.add(user2); application.setAttribute("List", list); %> <hr> <!-- 使用指令碼取出域中的值 --> <%=request.getAttribute("name") %> <%Users u=(Users)session.getAttribute("user"); out.write(u.getUsername()); %> <hr> <!-- 使用EL表示式取出域中的值 --> ${requestScope.name} ${sessionScope.user.username} ${applicationScope.List[0].pwd} <hr> <!-- 使用el表示式 全域查詢(會從最小的找,底層就是findAttribute()) --> ${name } ${user.username} ${List[0].pwd}
pageContext - WEB開發中的pageContext.
pageContext獲得其他八大物件
${pageContext.request.contextPath}
1.EL執行表示式
例如:
${1+1}
${empty user}
${user==null?true:false}
JSTL技術
1.JSTL概述
JSTL(JSP Standard Tag Library),JSP標準標籤庫,可以嵌入在jsp頁面中使用標籤的形式完成業務邏輯等功能。jstl出現的目的同el一樣也是要代替jsp頁面中的指令碼程式碼。JSTL標準標準標籤庫有5個子庫,但隨著發展,目前常使用的是他的核心庫
標籤庫 |
標籤庫的URI |
字首 |
Core |
http://java.sun.com/jsp/jstl/core |
c |
I18N |
http://java.sun.com/jsp/jstl/fmt |
fmt |
SQL |
http://java.sun.com/jsp/jstl/sql |
sql |
XML |
http://java.sun.com/jsp/jstl/xml |
x |
Functions |
http://java.sun.com/jsp/jstl/functions |
fn |
2.JSTL下載與匯入
JSTL下載:
從Apache的網站下載JSTL的JAR包。進入 “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”網址下載 JSTL的安裝包。jakarta-taglibs-standard-1.1.2.zip,然後將下載好的JSTL安裝包 進行解壓,此時,在lib目錄下可以看到兩個JAR檔案,分別為jstl.jar和standard.jar。 其中,jstl.jar檔案包含JSTL規範中定義的介面和相關類,standard.jar檔案包含用於 實現JSTL的.class檔案以及JSTL中5個標籤庫描述符檔案(TLD)
將兩個jar包匯入我們工程的lib中
使用jsp的taglib指令匯入核心標籤庫
1.JSTL核心庫的常用標籤
1)<c:if test=””>標籤
其中test是返回boolean的條件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <c:if test="${1==1 }"> 正確 </c:if> <c:if test="${1!=1 }"> 錯誤 </c:if> <c:if test="${empty user}"><!--如果資料庫裡沒有user就顯示 --> <a href="#">登入</a> <a href="#">註冊</a> </c:if> <!-- 使用者已經登陸 --> <c:if test="${!empty user }"> <span>${user.name }</span> <a href="#">退出</a> </c:if> </body> </html>
<% //模擬使用者已經登入成功 User user=new User(); user.setId(100); user.setName("張三"); user.setPwd("123"); session.setAttribute("user", user); %>
網頁顯示張三 退出
2)<c:forEach>標籤
使用方式有兩種組合形式:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <c:forEach begin="0" end="5" var="i"> ${i } <!-- 列印0-5: ${i } --> <!-- 列印5個i: i --> </c:forEach> <c:forEach items="${List }" var="u"> ${u.id }...${u.username }...${u.pwd }<br> </c:forEach>
<!-- items:一個集合或陣列(從域中選)var:代表集合中的某一個元素 -->
<c:forEach items="${UserMap }" var="entry"> ${entry.key }...${entry.value.username }...${entry.value.pwd } </c:forEach> </body> </html>
一、javaEE的開發模式
MVC:---- web開發的設計模式
M:Model---模型 javaBean:封裝資料
V:View-----檢視 jsp:單純進行頁面的顯示
C:Controller----控制器 Servelt:獲取資料--對資料進行封裝--傳遞資料-- 指派顯示的jsp頁面
1.javaEE的三層架構
伺服器開發時 分為三層
web層:與客戶端互動
service層:複雜業務處理
dao層:與資料庫進行互動
開發實踐時 三層架構通過包結構體現
總結:
EL表示式
從域中取出資料 ${域中儲存的資料的name}
${pageContext.request.contextPath}
JSTL標籤(核心庫)
<%@ taglib uri=”” prefix=”c”%>
<c:if test=””>
<c:forEach items=”陣列或集合” var=”陣列或集合中的每一個元素”>
javaEE三層架構+MVC
web層:收集頁面資料,封裝資料,傳遞資料,指定響應jsp頁面
service層:邏輯業務程式碼的編寫
dao層:資料庫的訪問程式碼的編寫