日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(三)

發布時間:2025/3/19 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EL表達式

什么是EL表達式

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%request.setAttribute("key", "值");%>表達式腳本輸出key的值是:<%=request.getAttribute("key")%> <br>EL表達式輸出key的值是:${key} </body> </html>
  • 這樣輸出的結果相同
  • EL表達式在輸出null值(比如key1)的時候,輸出的是空串;jsp表達式腳本輸出null值的時候,輸出的是null字符串

EL表達式搜索四個域的順序

EL表達式主要是在jsp頁面中輸出數據
主要是輸出域對象中的數據

  • session中的數據瀏覽器關閉后才會消失,所以哪怕注釋session后然后刷新頁面,還是會輸出session
  • 當四個域中都有相同的key的數據的時候,EL表達式會根據四個域的從小到大的順序去進行搜索,找到就輸出

EL表達式輸出復雜的Bean對象

package com.atguigu.pojo;import java.util.Arrays; import java.util.List; import java.util.Map;public class Person {private String name;private String[] phones;private List<String> cities;private Map<String, Object> map;@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", phones=" + Arrays.toString(phones) +", cities=" + cities +", map=" + map +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public String[] getPhones() {return phones;}public void setPhones(String[] phones) {this.phones = phones;}public List<String> getCities() {return cities;}public void setCities(List<String> cities) {this.cities = cities;}public Map<String, Object> getMap() {return map;}public void setMap(Map<String, Object> map) {this.map = map;}public Person(String name, String[] phones, List<String> cities, Map<String, Object> map) {this.name = name;this.phones = phones;this.cities = cities;this.map = map;}public Person() {} } <%@ page import="com.atguigu.pojo.Person" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%Person person = new Person();person.setName("name111");person.setPhones(new String[]{"123", "456", "789"});List<String> cities = new ArrayList<String>();cities.add("beijin");cities.add("shanghai");cities.add("shenzheng");person.setCities(cities);Map<String, Object> map = new HashMap<>();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");person.setMap(map);pageContext.setAttribute("key_person", person);%>${ key_person } </body> </html> <%@ page import="com.atguigu.pojo.Person" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%Person person = new Person();person.setName("name111");person.setPhones(new String[]{"123", "456", "789"});List<String> cities = new ArrayList<String>();cities.add("beijin");cities.add("shanghai");cities.add("shenzheng");person.setCities(cities);Map<String, Object> map = new HashMap<>();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");person.setMap(map);pageContext.setAttribute("key_person", person);%>${ key_person } <br>${ key_person.name } <br>${ key_person.phones } <br>${ key_person.phones[1] } <br>${ key_person.cities } <br>${ key_person.cities[1] } <br>${ key_person.map } <br>${key_person.map[key2]} <br> </body> </html>

  • 注意EL表達式是不需要引入jstl.jar的
  • 注意到輸出map是輸出花括號包裹的鍵值對;輸出List得到的是由[]包裹起來的;輸出數組得到的是首地址
  • 通過實驗,我們注意到 :EL表達式中,找的不是這個屬性,而是找這個屬性所對應的get方法

關系運算

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>${12 == 12} 或 ${12 eq 12} <br> </body> </html>

邏輯運算

算術運算

empty運算

<%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><% // 1、值為null值的時候,為空request.setAttribute("key1", null); // truerequest.setAttribute("key2", new Object()); // false ,非空!// 2、值為空串的時候,為空request.setAttribute("key3", ""); // truerequest.setAttribute("key4", " "); // false// 3、值是Object類型數組,長度為零時為空request.setAttribute("key5", new Object[]{}); // truerequest.setAttribute("key6", new Object[]{"12"}); // false// 4、list集合,元素個數為零List<String> list = new ArrayList<>();request.setAttribute("key7", list); // true// 5、map集合,元素個數為零Map<String, Object> map = new HashMap<String, Object>();request.setAttribute("key8", , map); // true%>${ empty key1 } </body> </html>

三元運算


${ 12 == 12 ? "123" : "456" }

點運算和中括號運算

.點運算,可以輸出bean對象中某個屬性的值
[]中括號運算,可以輸出有序集合中某個元素的值
并且中括號運算還可以輸出map集合中 key 里含有特殊字符的key的值(比如. 和 邏輯運算符)

  • 不要忘了引號,單引號或者雙引號都可以

11個EL隱含對象

pageScope、requestScope、sessionScope、applicationScope演示

  • 要先在某個域中setAttribute
  • 之前直接 ${ key1 } 是按四個域從小到大的順序去搜索的
  • 如果使用比如 ${ applicationScope.key1 } 我們就可以選擇性地去搜索了

pageContext演示

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>${ pageContext } <br>1、協議<%--request.getScheme() 可以獲取請求的協議--%><%=request.getScheme()%> <br> <%-- http --%>${ pageContext.request.scheme } <br> <%-- 因為在el表達式中默認會找點后面內容所對應的"get"方法 --%> <%-- http --%>2、請求的服務器ip或域名<%=request.getServerName()%> <br> <%-- localhost --%>${ pageContext.request.serverName } <br>3、服務器端口<%=request.getServerPort()%> <br>${ pageContext.request.serverPort } <br>4、獲取當前的工程路徑<%=request.getContextPath()%> <br>${ pageContext.request.contextPath } <br>5、獲取請求方法<%=request.getMethod()%> <br>${ pageContext.request.method } <br>6、獲取客戶端ip地址<%=request.getRemoteHost()%> <br>${ pageContext.request.remoteHost } <br>7、獲取會話的id編號<%=session.getId()%> <br>${ pageContext.session.id } <br> </body> </html>

  • 有同學就要問啦,不是說好的el表達式比表達式腳本簡介嘛?有一個小技巧 :
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%pageContext.setAttribute("req", request);%>${ req.scheme } </body> </html>

其他EL隱含對象的示例

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>${ param } </body> </html>


<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>輸出請求參數username的值 :${ param.username } </body> </html>

  • 當一個參數有多個值時,用param只能得到其中一個,要得到全部的,應該用paramValues
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>${ paramValues } <br>${ paramValues.username[0] } <br>${ paramValues.hobby[0] } <br>${ paramValues.hobby[1] } <br> </body> </html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>${ header } <br>${ header['User-Agent'] } <br> <%-- 注意不能用header.User-Agent --%> </body> </html>

  • 如果有多個值的時候用headerValues,但是直接得到的是數組,還要配合下標使用
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>${ headerValues['User-Agent'] } <br> <%-- 這樣直接得到的是個數組,而不是具體內容 --%>${ headerValues['User-Agent'][0] } <br> </body> </html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>${ cookie } <br>獲取cookie的名稱 :${ cookie.JSESSIONID.name } <br> <%-- 調用getName()方法 --%></body> </html>


  • 要先在web.xml中配置參數,用initParam才有值

JSTL標簽庫

JSTL標簽庫的介紹



標簽庫的使用步驟

  • 在web-inf目錄下創建一個lib目錄用來放jar包

  • 還要 Add as Library,記得選 模塊庫,不是項目庫

set標簽

  • 其中,page是默認值
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body>保存之前:${ requestScope.abc } <br><c:set scope="request" var="abc" value="abcValue" />保存之后:${ requestScope.abc } <br></body> </html>

if標簽

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><c:if test="${ 12 == 12 }"><h1>12 == 12</h1></c:if> </body> </html>

choose,when,otherwise標簽


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%request.setAttribute("height", 180);%><c:choose><c:when test="${ requestScope.height > 190 }"><h2>小巨人</h2></c:when><c:when test="${ requestScope.height > 180 }"><h2>很高</h2></c:when><c:when test="${ requestScope.height > 170 }"><h2>還可以</h2></c:when><c:otherwise><h2>剩下小于170的情況</h2></c:otherwise></c:choose> </body> </html>

使用foreach遍歷1-10輸出

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><c:forEach begin="1" end="10" var="i"><h1> ${ i } </h1></c:forEach> </body> </html>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><table><c:forEach begin="1" end="10" var="i"><tr><td>第${ i }</td></tr></c:forEach></table> </body> </html>

使用foreach遍歷Object數組

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%request.setAttribute("arr", new String[]{"123", "456", "789"});%><c:forEach items="${ requestScope.arr }" var="item">${ item } <br></c:forEach> </body> </html>

使用foreach遍歷map集合

<%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%Map<String, Object> map = new HashMap<String, Object>();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");request.setAttribute("map", map);%><%-- for ( Map.Entry<String, Object> entry : map.entrySet()) --%><c:forEach items="${ requestScope.map }" var="entry"><h1>${ entry } : ${ entry.key } = ${ entry.value }</h1></c:forEach> </body> </html>

使用foreach遍歷list集合

<%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ page import="java.util.List" %> <%@ page import="com.atguigu.pojo.Student" %> <%@ page import="java.util.ArrayList" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%List<Student> studentList = new ArrayList<Student>();for (int i = 1; i <= 10; i ++ )studentList.add(new Student(i, "username" + i, "pass" + i, 18 + i, "phone" + i));request.setAttribute("stus", studentList);%><table><tr><th>編號</th><th>用戶名</th><th>密碼</th><th>年齡</th><th>電話</th><th>操作</th></tr><c:forEach items="${ requestScope.stus }" var="stu"><tr><td>${ stu.id }</td><td>${ stu.username }</td><td>${ stu.password }</td><td>${ stu.age }</td><td>${ stu.phone }</td><td> 刪除、修改 </td></tr></c:forEach></table> </body> </html>

foreach標簽所有屬性組合使用介紹


總結

以上是生活随笔為你收集整理的尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰成人av | 能直接看的av网站 | 欧美国产一区二区 | 91精品一区 | 欧美透逼视频 | www.麻豆av.com| 成人黄色网页 | 少妇呻吟视频 | 色婷婷综合在线 | 日韩在线综合 | 强行糟蹋人妻hd中文 | 久久久噜噜噜www成人 | 日本色中色 | 最新欧美日韩 | 在线观看的免费 | 入禽太深免费视频 | 免费黄色激情视频 | a级无毛片 | 三级在线视频 | 男生尿隔着内裤呲出来视频 | 黄色网址大全免费 | 日韩亚洲欧美一区二区 | 91手机在线视频 | 中国特级黄色片 | 女大学生的家政保姆初体验 | 精品人妻人人做人人爽夜夜爽 | 日日骚影院 | 国产又粗又猛视频免费 | 秋霞成人 | 日本国产亚洲 | 午夜福利视频合集1000 | 你操综合 | 日韩色一区 | 免费久久视频 | 亚洲综合久久网 | 顶级尤物极品女神福利视频 | 成人av影院 | 中国av一级片 | 色悠久| 欧美激情视频在线播放 | av在线激情 | 高h捆绑拘束调教小说 | 国产精品情侣 | 精品无码人妻一区二区三区 | 四虎精品永久在线 | 欧美一区二区免费视频 | 91久久久精品 | 亚洲欧美国产精品 | 日日夜夜免费 | 亚洲永久精品在线观看 | 日日夜夜免费精品 | 黄色一级播放 | 麻豆传媒在线播放 | 欧美另类videossexo高潮 | 午夜av不卡| 99热这里只有精品8 国产一卡二 | 波多野结衣视频免费在线观看 | 国产电影免费观看高清完整版视频 | 人人射影院 | 五月激情在线 | 狠狠操网址 | 欧美精产国品一二三 | 日本一区免费看 | 久久午夜夜伦鲁鲁一区二区 | 在线视频观看国产 | 欧洲性猛交 | 国产精品黑丝 | 人妻精品一区 | 欧美二区在线观看 | 女人下面喷水视频 | 国产农村熟妇videos | 韩国伦理片在线播放 | 欧美第一精品 | 欧美日韩综合在线观看 | 亚洲综合涩| 亚洲精品一区二区二区 | 日本久久视频 | 一级黄色录相 | 日韩av综合 | 国产男女猛烈无遮挡 | 成年人的视频网站 | 日本精品一区二区三区在线观看 | 久久免费高清视频 | 免费黄色片网站 | 亚洲综合自拍偷拍 | 天天做夜夜爽 | 成年人视频在线观看免费 | 日本免费成人 | 亚洲精品久久久久久久久久久久久 | 亚洲av无码一区二区二三区 | 在线观看的免费 | 亚洲av无码一区二区三区网址 | 成人在线观看免费爱爱 | 欧美一区二区三区视频 | 日韩成人午夜影院 | 深夜福利亚洲 | 日韩av一区二区在线观看 | 不卡一区二区在线观看 | a级黄色小视频 |