JavaWeb學習——EL表示式&JSTL
一、EL技術
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域中獲取屬性,在某個域中獲取後將不在向後尋找
<%
//儲存字串
String str = "aaaaaa";
pageContext.setAttribute("str", str);
%>
<%
//儲存物件
User user = new User();
user.setUsername("zhangsan");
user.setPassword("123");
request.setAttribute("user", user);
%>
<%
//存貯集合
User user1 = new User() ;
user1.setUsername("lisi") ;
user1.setPassword("123" );
User user2 = new User() ;
user2.setUsername("wangwu");
user2.setPassword("345") ;
List<User> list = new ArrayList<User>() ;
list.add(user1);
list.add(user2);
session.setAttribute("list", list) ;
%>
<!-- 指令碼法取資料 通過內建物件 -->
<!-- 獲得普通字串 -->
<%=pageContext.getAttribute("str")%>
<!-- 獲得User物件的值 -->
<%
User requestUser = (User) request.getAttribute("user");
out.write(requestUser.getUsername());
%>
<!-- 獲得List<User>的值 -->
<%
List<User> listUser =(List) session.getAttribute("list");
out.write(listUser.get(1).getUsername());
%>
<hr/>
<!-- el表示式取資料 -->
<!-- 獲得普通字串 -->
${pageScope.str}
<!-- 獲得User物件的值 -->
${requestScope.user.username}
<!-- 獲得List<User>的值 -->
${sessionScope.list[1].username }
<hr/>
<!-- 全域el -->
<!-- 獲得普通字串 -->
${str }
<!-- 獲得User物件的值 -->
${user.username }
<!-- 獲得List<User>的值 -->
${list[0].username }
${list[1].username }
3.EL的內建物件11個
pageScope,requestScope,sessionScope,applicationScope
—- 獲取JSP中域中的資料
param,paramValues - 接收引數.
相當於request.getParameter() rquest.getParameterValues()
header,headerValues - 獲取請求頭資訊
相當於request.getHeader(name)
initParam - 獲取全域性初始化引數
相當於this.getServletContext().getInitParameter(name)
cookie - WEB開發中cookie
相當於request.getCookies()—cookie.getName()—cookie.getValue()
pageContext - WEB開發中的pageContext.
pageContext獲得其他八大物件
${pageContext.request.contextPath}:獲得專案的路徑
4.EL執行表示式
例如:
${1+1}
${empty user}:empty表示判斷物件是否為空,為空返回true,否則返回false。
${user==null?true:false}
二、JSTL技術
1.JSTL概述
JSTL(JSP Standard Tag Library),JSP標準標籤庫,可以嵌入在jsp頁面中使用標籤的形式完成業務邏輯等功能。jstl出現的目的同el一樣也是要代替jsp頁面中的指令碼程式碼。JSTL標準標準標籤庫有5個子庫,但隨著發展,目前常使用的是他的核心庫
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)。
第一步:將jstl.jar和standar.jar兩個jar包匯入工程的lib中即可。
第二步:使用jsp的taglib指令匯入核心標籤庫
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3.JSTL核心庫的常用標籤
1)<c:if test=””></c:if>
標籤
其中test是返回boolean的條件
<!-- if判斷 -->
<c:if test="true">
xxx
</c:if>
<c:if test="false">
123
</c:if>
<c:if test="true?true:false">
1=1
</c:if>
<!-- 此處的1=1不會輸出,因為true?true:false三目判斷是無用的,因為test裡面只能接受true或者false,其他字元或者表示式都預設為false -->
2)<c:forEach></c:forEach>
標籤
使用方式有兩種組合形式:
方式1——for迴圈:
<c:forEach begin="從多少開始" end="到多少結束" var="每次迴圈的變數"></c:forEach>
對應: for( i=? ; i<>==? ; int i )
方式2——增強for:
<c:forEach items="objs" var="obj "></c:forEach>
對應: foreach(Object obj : objs)
注:標籤中間是顯示輸出的資料,因此可以在標籤中間加入html程式碼
1)遍歷List<String>
的值
2)遍歷List<User>
的值
3)遍歷Map<String,String>
的值
4)遍歷Map<String,User>
的值
5)遍歷Map<User,Map<String,User>>
的值
entry.key—–User
entry.value——List
<!-- foreach方式1——普通for迴圈 -->
<c:forEach begin="0" end="5" var="i">
<br/>${i }
</c:forEach>
<br/>
<%
//List<String>
List<String> stringList = new ArrayList<String>() ;
stringList.add("zhangsan");
stringList.add("lisi");
stringList.add("wangwu");
request.setAttribute("stringList", stringList);
//List<User>
User user1 = new User() ;
user1.setUsername("zhangchi") ;
user1.setPassword("123");
User user2 = new User() ;
user2.setUsername("shige") ;
user2.setPassword("123");
User user3 = new User() ;
user3.setUsername("dashabi");
user3.setPassword("345") ;
List<User> userList = new ArrayList<User>();
userList.add(user1);
userList.add(user2);
userList.add(user3);
session.setAttribute("userList", userList);
//Map<String,String>
Map<String,String> stringMap = new HashMap<String,String>() ;
stringMap.put("name", "zhangsan");
stringMap.put("sex", "nan");
stringMap.put("eamil", "[email protected]");
pageContext.setAttribute("stringMap", stringMap);
Map<String,User> userMap = new HashMap<String,User>();
userMap.put("user1",user1);
userMap.put("user2",user2);
userMap.put("user3",user3);
application.setAttribute("userMap", userMap);
%>
<!-- foreach方式2——增強for -->
<h1>遍歷stringList的值</h1>
<c:forEach items="${stringList }" var="str">
str=${str }<br/>
</c:forEach>
<h1>遍歷userList的值</h1>
<c:forEach items="${userList }" var="user">
user=${user.username }<br/>
</c:forEach>
<h1>遍歷stringMap的值</h1>
<c:forEach items="${stringMap }" var="map">
${map }<br/>
</c:forEach>
<h1>遍歷userMap的值</h1>
<c:forEach items="${userMap }" var="usermap">
${usermap.value.username }<br/>
</c:forEach>
三、javaEE的開發模式
1.什麼是模式
模式在開發過程中總結出的“套路”,總結出的一套約定俗成的設計模式
2.javaEE經歷的模式
model1模式:
技術組成:jsp+javaBean
model1的弊端:隨著業務複雜性 導致jsp頁面比較混亂
model2模式
技術組成:jsp+servlet+javaBean
model2的優點:開發中 使用各個技術擅長的方面
servlet:擅長處理java業務程式碼
jsp:擅長頁面的現實
MVC:—- web開發的設計模式
M:Model—模型 javaBean:封裝資料
V:View—–檢視 jsp:單純進行頁面的顯示
C:Controller—-控制器 Servelt:獲取資料–對資料進行封裝–傳遞資料– 指派顯示的jsp頁面
3.javaEE的三層架構
伺服器開發時 分為三層
web層:與客戶端互動
service層:複雜業務處理
dao層:與資料庫進行互動
開發實踐時 三層架構通過包結構體現
MVC與三層架構有什麼關係?
javaEE三層架構+MVC
web層:收集頁面資料,封裝資料,傳遞資料,指定響應jsp頁面
service層:邏輯業務程式碼的編寫
dao層:資料庫的訪問程式碼的編寫
相關推薦
JavaWeb學習——EL表示式&JSTL
一、EL技術 1.EL 表示式概述 EL(Express Lanuage)表示式可以嵌入在jsp頁面內部,減少jsp指令碼的編寫,EL出現的目的是要替代jsp頁面中指令碼的編寫。 2.EL從域中取出資料(EL最重要的作用) jsp指令碼:<
javaweb jsp&el表示式&jstl 解析
JSP & EL & JSTL jsp Java Server Page 什麼是jsp 從使用者角度看待 ,就是是一個網頁 , 從程式設計師角度看待 , 其實是一個java類, 它繼承了servlet,所以可以直接說jsp 就是一個Se
java基礎學習:JavaWeb之EL表示式
其他更多java基礎文章: java基礎學習(目錄) 一、EL表示式 EL 全名為Expression Language。JSP中可以使用EL表示式,EL表示式是用"${}"括起來的指令碼,用來更方便地讀取物件,EL表示式寫在JSP的HTML程式碼中,而不能寫在"<%%>"引起的JSP指令
JavaWeb基礎Day17 (JSP EL表示式 jstl標籤庫 beanutil工具類)
JSP jsp的實質就是指在html介面中嵌入Java程式碼 jsp指令碼 <% Java程式碼 %> 相當於寫在service方法中。 <%=java 變數或者表示式 %> 相當於在service 內部寫了 out.println
javaweb:EL表示式
EL表示式簡介: EL 全名為Expression Language。 EL主要作用: 獲取資料: •EL表示式主要用於替換JSP頁面中的指令碼表示式,以從各種型別的web域 中檢索java物件、獲取資料。(某個web域 中的物件,訪問javabean的屬性、訪問list集
JavaWeb之EL表示式
簡化Java程式碼 1. 使用方式 ${物件名.成員} 2. 操作符 如果值存在下標,直接使用[],如果沒有下標,使用.去取值 3. 內建物件 作用域相關 pageScope requestScopesessionScopeapplicationScop
javaWeb(五)EL表示式
1.語法結構 --${作用域的key}--- 如果多個作用域的a相同的時候 那麼獲取到的是作用域最小的key --如果要指定獲取到指定作用域中的key值 則可以使用 作用域+Scope .a 來指明 2.[] 與 . 運算子 兩張運算子都是用來導航資料, 代表的意思是一
Java Web複習(12)EL表示式jstl標籤庫
1 EL概述1.1 EL的作用JSP2.0要把html和css分離、要把html和javascript分離、要把Java指令碼替換成標籤。標籤的好處是非Java人員都可以使用。JSP2.0 – 純標籤頁面,即:不包含<% … %>、<%! … %>,以
java學習 EL表示式輸出實體物件
既然是為了輸出實體物件,那麼肯定是要匯入實體物件的: 下面是用到的實體類: package com.mldn.wq.vo; public class Dept { private int deptno; private String dn
JavaWeb學習筆記及案例(一)JSP與EL表示式和JSTL
1.JSP 1.1JSP的三大指令 page include taglib 指令的寫法 <%@ 指令名字 %> 1.1.1jsp的page指令 1.extends 用於指定jsp翻譯成java檔案後,繼承的父類是誰,一般不改 2.s
JAVAWEB學習(10) - EL表示式和JSTL
EL表示式和JSTL 一、EL表示式 1.1. EL表示式是什麼 是一套簡單的運算規則,用於給jsp標籤的屬性賦值,也可以脫離jsp標籤,直接使用。 1.2. EL表示式的使用 1.2.1. 讀取bean的屬性值 javabean指的是一個符合如下要求的Java類:
JavaWeb學習總結——EL表示式與JSTL標籤
uJSP標準標籤庫(JSTL)是一個JSP標籤集合,它封裝了JSP應用的通用核心功能。 uJSTL支援通用的、結構化的任務,比如迭代,條件判斷,XML文件操作,國際化標籤,SQL標籤。 除了這些,它還提供了一個框架來使用整合JSTL的自定義標籤。 u核心標籤是最常用的
Javaweb學習筆記6—EL表示式與JSTL及自定義標籤
前幾天部落格被黑了,導致部落格登陸不上,把前幾天應該發的東西的東西重新發一遍 今天來講javaweb的第六階段學習。 EL表示式與JSTL及自定義標籤是對上篇文章介紹的JSP的擴充套件,不能說是
JavaWeb學習之動態頁面技術(JSP/EL/JSTL)
常用標簽 cat lang each ems tty com HR html4 JSP技術 1、jsp腳本和註釋 jsp腳本: 1、<% java代碼%> 內部的Java代碼翻譯到service方法的內部 2、<%
JavaWeb - JSTL、EL 表示式
一、EL表示式 簡介 - EL表示式介紹及作用:Expression Language(表示式語言),目的是替代JSP頁面中的複雜程式碼。 - EL表示式語法:“${變數名}”。 EL表示式的語法有兩個要素:$ 和 {}。 例如: 點號記法:${Be
JavaWeb基礎JSP頁面EL 和JSTL表示式
文章目錄 jsp 怎麼用JSP 指令寫法 page指令 include taglib JSP 動作標籤 JSP內建物件 四個作用域的區別
JSP的學習(二)——EL和JSTL表示式
一、EL表示式 ①基本概念 EL表示式: expression language表示式語言 EL(Expression Language) 是為了使JSP寫起來更加簡單。表示式語言的靈感來自於 ECMAScript 和 XPath 表示式語言,它提供了在 JSP 中簡化
JavaWeb學習(二十二)———EL表示式
一、EL表示式簡介 EL 全名為Expression Language。EL主要作用: 1、獲取資料 EL表示式主要用於替換JSP頁面中的指令碼表示式,以從各種型別的web域 中檢索java物件、獲取資料。(某個web域 中的物件,訪問javabean的屬性、訪問list集合、訪問map集合、訪
Java學習——JSTL標籤與EL表示式之間的微妙關係
很高興,今天能和大家分享剛學的一些新知識。我們在java開發過程中經常會在jsp中嵌入一些java程式碼,比如<%=request.getParameter("id")%>
【java學習之旅】——JSTL+EL表示式讓jsp頁面簡潔化
【前言】 jsp2.0之後,頁面上幾乎不使用Java指令碼了,其實不難理解,因為在計算機中程式分工越來越明確,三層,mvc的使用都是程式劃分層次結構的產物,jsp只能用做頁面的顯示,所以JSTL標