Java web后端6 java Bean EL表達式

EL表達式和JSTL概述

在這里插入圖片描述

java Bean規范

java中成員變量使用類Integer

private Integer count;

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

java Bean的創建

創建java Bean: BookTest.java

package com.example.elandjstl.bean;public class BookTest {//java中成員變量使用類Integerprivate Integer count;private Boolean isBuy;//無參構造方法public BookTest() {}public BookTest(Integer count, Boolean isBuy) {this.count = count;this.isBuy = isBuy;}public Integer getCount() {return count;}public void setCount(Integer count) {this.count = count;}public Boolean getIsBuy() {return isBuy;}public void setBuy(Boolean buy) {isBuy = buy;}}

在jsp中簡單使用Java Bean

1.java代碼
在這里插入圖片描述

2.jsp:useBean方式:只賦值常量值:整型,小數,字符串等,如果是java的數組之類的直接使用java代碼
在這里插入圖片描述
總代碼:

<%@ page import="com.example.elandjstl.bean.BookTest" %><%--Created by IntelliJ IDEA.User: DQDate: 2021/11/1Time: 14:18To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%//使用java bean創建//1.java代碼,但盡量在jsp中不使用java代碼BookTest book1=new BookTest();book1.setBuy(true);book1.setCount(10);out.println(book1.getIsBuy());//輸出out.println(book1.getCount());//輸出
%><br>
<%--2.jsp:useBean--%>
<%--實例化--%>
<%--id:對象,class:類--%>
<jsp:useBean id="book2" class="com.example.elandjstl.bean.BookTest"/>
<%--為對象屬性賦值--%>
<%--name:對象名 property:屬性 value:賦值--%>
<jsp:setProperty name="book2" property="count" value="888"/>
<%--獲取屬性,直接就輸出在瀏覽器了--%>
<jsp:getProperty name="book2" property="count"/></body>
</html>

jsp中定義java bean

1.java 代碼
在這里插入圖片描述
2.jsp:useBean
在這里插入圖片描述
代碼:

<%--定義--%>
<%//使用java bean創建//1.java代碼,但盡量在jsp中不使用java代碼BookTest book1 = new BookTest();book1.setCount(10);%>
<%--2.jsp:useBean--%>
<%--實例化--%>
<%--id:對象,class:類--%>
<jsp:useBean id="book2" class="com.example.elandjstl.bean.BookTest"/>
<%--為對象屬性賦值--%>
<%--name:對象名 property:屬性 value:賦值--%>
<jsp:setProperty name="book2" property="count" value="888"/>

jsp中獲取java bean

1.java代碼
在這里插入圖片描述
2.jsp表達式
在這里插入圖片描述
3.jsp動作標簽
不能獲取java中定義的對象book1,并且會報錯
在這里插入圖片描述
4.EL表達式
不能獲取java中定義的對象book1,但顯示時,不會出現任何內容,不會輕易報錯
在這里插入圖片描述

訪問代碼:


<%--訪問--%>
<%out.print("java代碼方式:<br>");out.print("book1-count:" + book1.getCount() + "<br>");//輸出out.print("book2-count:" + book2.getCount() + "<br>");//輸出
%>jsp表達式方式:<br>
book1.getCount()=<%=book1.getCount()%><br>
book2.getCount()=<%=book2.getCount()%><br>jsp:getProperty動作元素:<br>
<%--獲取屬性,直接就輸出在瀏覽器了--%>
<%--<jsp:getProperty name="book1" property="count"/>報錯,動作標簽不能訪問java中定義的對象--%>
<br>
<jsp:getProperty name="book2" property="count"/>EL表達式:<br>
book1-count:${book1.count}<br>
book2-count:${book2.count}<br>

jsp中java bean定義和獲取總代碼

<%@ page import="com.example.elandjstl.bean.BookTest" %><%--Created by IntelliJ IDEA.User: DQDate: 2021/11/1Time: 14:18To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%--定義--%>
<%//使用java bean創建//1.java代碼,但盡量在jsp中不使用java代碼BookTest book1 = new BookTest();book1.setCount(10);%>
<%--2.jsp:useBean--%>
<%--實例化--%>
<%--id:對象,class:類--%>
<jsp:useBean id="book2" class="com.example.elandjstl.bean.BookTest"/>
<%--為對象屬性賦值--%>
<%--name:對象名 property:屬性 value:賦值--%>
<jsp:setProperty name="book2" property="count" value="888"/><%--訪問--%>
<%out.print("java代碼方式:<br>");out.print("book1-count:" + book1.getCount() + "<br>");//輸出out.print("book2-count:" + book2.getCount() + "<br>");//輸出
%>jsp表達式方式:<br>
book1.getCount()=<%=book1.getCount()%><br>
book2.getCount()=<%=book2.getCount()%><br>jsp:getProperty動作元素:<br>
<%--獲取屬性,直接就輸出在瀏覽器了--%>
<%--<jsp:getProperty name="book1" property="count"/>報錯,動作標簽不能訪問java中定義的對象--%>
<br>
<jsp:getProperty name="book2" property="count"/>EL表達式:<br>
book1-count:${book1.count}<br>
book2-count:${book2.count}<br></body>
</html>

EL表達式

獲取Seervlet域對象
在這里插入圖片描述
在jsp代碼中書寫:
在這里插入圖片描述

不會輕易報錯,只是顯示時不會出現任何內容
如:
不能獲取java中定義的對象book1,但顯示時,不會出現任何內容
在這里插入圖片描述
EL表達式的book2.count實際上是調用java bean的getter方法

EL表達式的請求轉發案例

ElServlet1.java代碼:


@WebServlet(name = "ElServlet1", value = "/ElServlet1")
public class ElServlet1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setAttribute("username", "dq");request.setAttribute("password", "password");//請求轉發RequestDispatcher requestDispatcher = request.getRequestDispatcher("/elServlet1.jsp");requestDispatcher.forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}

elServlet1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
1、第一種方式獲取:<br>
username=<%=request.getAttribute("username")%><br>
password=<%=request.getAttribute("password")%><br>
<hr>2、El表達式獲取域對象:<br>
<%--字符串--%>
<%--輸出結果:
El表達式獲取域對象:
username=username
password=password
--%>
username=${"username"}<br>
password=${"password"}<br><%--輸出結果:
username=dq
password=password
--%>
username=${username}<br>
password=${password}<br>等效于:
<%--輸出
username=dq
password=password
--%>
username=${requestScope.username}<br>
password=${requestScope.password}<br>
</body>
</html>

EL表達式的標識符

所有自己命名的地方
命名規則:
1.不能以數字開頭;
2.不能是EL中的保留字,如and、or、gt;
3.不能是EL隱式對象,如pageContext;
4.不能包含單引號(’)、雙引號(")、減號(-)和正斜線等特殊字符。

EL表達式的保留字/關鍵字

保留字就是編程語言里事先定義好并賦予了特殊含義的單詞,和其他語言一樣,EL表達式中也定義了許多保留字,如false、not等:

and,or,not:與或非
ne不等于,eq等于
le小于 ge大于
lt小于等于 gt大于等于
在這里插入圖片描述

EL表達式的常量

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
說明:
在這里插入圖片描述

EL表達式的運算符

點運算符

取對象的屬性,使用.而不是get
在這里插入圖片描述
在這里插入圖片描述

方括號運算符

.運算符不能訪問具有特殊字符的屬性
方括號訪問數組對象的元素
在這里插入圖片描述

在這里插入圖片描述
使用案例1:
定義:
在這里插入圖片描述
輸出:
在這里插入圖片描述
使用案例2:
在這里插入圖片描述

算術運算符

在這里插入圖片描述
在這里插入圖片描述

比較運算符

在這里插入圖片描述
在這里插入圖片描述

邏輯運算符

在這里插入圖片描述

empty運算符

在這里插入圖片描述
案例:返回結果為true或false
在這里插入圖片描述

條件運算符

在這里插入圖片描述

注意

在這里插入圖片描述
在這里插入圖片描述

EL表達式運算符總結

在這里插入圖片描述
代碼案例:
在這里插入圖片描述

<jsp:useBean id="book" class="com.example.elandjstl.bean.BookTest"/>
<jsp:setProperty name="book" property="count" value="77"/>el點運算符:${book.count}<br>
el方括號運算符:${book["count"]}<br>
el算術運算符:-3/1=${-3/1}<br>
el比較運算符:-3>1=${-3>1}<br>
el邏輯運算符:${(3-2==1)&&(8+5==13)}<br>
el empty:${empty book.count}<br>
el三目運算符:${("if"=="IF")?"great":"bad"}<br><%--輸出
el點運算符:77
el方括號運算符:77
el算術運算符:-3/1=-3.0
el比較運算符:-3>1=false
el邏輯運算符:true
el empty:false
el三目運算符:bad
--%>

EL表達式的隱式對象

在這里插入圖片描述

pageContext對象

在這里插入圖片描述
案例:
在這里插入圖片描述
代碼:

el隱式對象:pageContext
獲取當前項目的路徑:${pageContext.request.contextPath}<br>
獲取請求的URL:${pageContext.request.requestURI}<br/><%--輸出:
el隱式對象:pageContext 獲取當前項目的路徑:/ELAndJSTL_war_exploded
獲取請求的URL:/ELAndJSTL_war_exploded/elTest3.jsp
--%>

web域對象

在這里插入圖片描述
案例:
在這里插入圖片描述
代碼:

el隱式對象:web域相關的對象:<br/>
<%//設置不同web域下的屬性pageContext.setAttribute("page","pageContext");request.setAttribute("request","request");session.setAttribute("session","session");application.setAttribute("application","application");
%>
<%--通過Scope獲取域對象的屬性--%>
<%--${page}:可以直接這樣,從范圍小的開始搜索;
pageScope這樣的web域對象是為了避免有重名的,因為不同域下的有重名的就會先獲取最小范圍的--%>
pageScope.page=${pageScope.page}=====${page}<br/>
requestScope.request=${requestScope.request}=====${request}<br/>
sessionScope.session=${sessionScope.session}=====${session}<br/>
applicationScope.application=${applicationScope.application}====${application}<br/><%--輸出:
el隱式對象:web域相關的對象:
pageScope.page=pageContext=====pageContext
requestScope.request=request=====request
sessionScope.session=session=====session
applicationScope.application=application====application
--%>

param和paramValues

在這里插入圖片描述

在這里插入圖片描述
param案例:獲取表單的提交的數據并顯示
瀏覽器顯示:
在這里插入圖片描述
jsp代碼:
在這里插入圖片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%--自己跳轉到自己--%>
<form action="elTest4.jsp" method="get"><br/>name:<input type="text" name="name"><br/>age:<input type="text" name="age"><br/>age:<input type="text" name="age"><br/>love:<input type="text" name="love"><br/><%--&nbsp;空格--%><input type="submit" value="提交"/>&nbsp;&nbsp;<input type="reset" value="重填"><hr/><%--通過param.name:獲取表單提交的值--%>name:${param.name}<br/><%--paramValues.age[0]:獲取name名稱相同的不同對象--%>age1:${paramValues.age[0]}<br/>age2:${paramValues.age[1]}<br/>love:${param.love}<br/></form></body>
</html>

cookie對象

在這里插入圖片描述
Cookie案例:
在這里插入圖片描述
代碼:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%--el表達式:Cookie--%>
<%//添加Cookieresponse.addCookie(new Cookie("username","dq"));
%>
<%--等同于: request.getCookies()--%>
獲取Cookie對象:${cookie.username}<br/><%--等同于:cookie.getName()--%>
獲取Cookie對象的名稱:${cookie.username.name}<br/><%--等同于: cookie.getValue()--%>
獲取Cookie對象的值:${cookie.username.value}<br/><%--輸出:
獲取Cookie對象:javax.servlet.http.Cookie@7a01e62a
獲取Cookie對象的名稱:username
獲取Cookie對象的值:dq
--%>
</body>
</html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446305.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python根須系統斜杠_深入淺出Python中的os模塊

「Author&#xff1a;Runsen」當初學Python的時候&#xff0c;把一些標準庫和第三方開源庫學的七零八落&#xff0c;不成系統&#xff0c;正好趁這個機會來系統的整理一下&#xff0c;先從Python常用的標準庫os開始吧。osOS模塊簡單的來說它是一個Python的系統編程的操作模塊&a…

密碼學專題 隨機數文件

無論使用OpenSSL的指令還是其API&#xff0c;隨機數文件都是會經常碰到的一個概念。大部分密碼算法的安全性都跟隨機數的好壞相關&#xff0c;所以一個成功的密碼學應用軟件&#xff0c;對隨機數的處理是不能隨便的。OpenSSL雖然沒有提供很完美的隨機數生成程序&#xff0c;但是…

Java web后端7JSTL

概括 下載jstl的jar包 官網&#xff1a;https://mvnrepository.com/ 網址1&#xff1a;https://search.maven.org/ 在pomxml中插入依賴&#xff1a; <dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1…

python輸入程序_python程序的輸入輸出(acm的幾個小程序)

#!/usr/bin/env python#codingutf-8 a[]for x inraw_input().split(): a.append(int(x))print sum(a) 下面的代碼只有一行&#xff0c;&#xff0c;可惜不是我想出來的&#xff01;&#xff01;&#xff01;&#xff01;&#xff1a; print sum(int(x) for x in raw_input().sp…

密碼學專題 口令輸入的方式

雖然口令的安全性很值得擔憂&#xff0c;但是口令在OpenSSL中是經常使用的&#xff0c;這是沒有辦法替代的一種簡易的保護數據的方法。OpenSSL中使用口令的地方很多&#xff0c;比如密鑰的加密和解密&#xff0c;等等。OpenSSL的指令提供了多種靈活的口令輸入方法&#xff0c;但…

Python學習14 模塊和包

模塊 公共類、函數都可以放在獨立的文件中&#xff0c;這樣其他多個程序都可以使用&#xff0c;而不必把這些公共性的類、函數等在每個程序中復制一份&#xff0c;這樣獨立的文件就叫做模塊&#xff0c;它們的擴展名為.py 標準庫中的模塊 使用help查看模塊 代碼&#xff1a; …

python語句分為_python以什么劃分語句塊

語句塊是在條件為真&#xff08;條件語句&#xff09;時執行或者執行多次&#xff08;循環語句&#xff09;的一組語句&#xff1b;在代碼前放置空格來縮進語句即可創建語句塊&#xff0c;語句塊中的每行必須是同樣的縮進量&#xff1b;&#xff08;推薦學習&#xff1a;Python…

Python學習15 正則表達式1

網址 正則表達式測試網址&#xff1a;https://regex101.com/ 概述 正則表達式&#xff1a; 正則表達式(Regular Expression)是一種文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之間的字母&#xff09;和特殊字符&#xff08;稱為"元字符"…

STL源碼剖析 空間配置器 查漏補缺

ptrdiff_t含義 減去兩個指針的結果的帶符號整數類型ptrdiff_t (Type support) - C 中文開發手冊 - 開發者手冊 - 云社區 - 騰訊云 std::set_new_handler&#xff08;&#xff09;函數的理解 關于set_new_handler的理解_wck0617-CSDN博客new分配內存的時候 如果分配的空間不…

python每天定時9點執行_python定時器每天訂時執行的實例方法

python定時器,實現每天凌晨3點執行的方法 如下所示&#xff1a;Created on 2018-4-20 例子:每天凌晨3點執行func方法import datetime import threading def func(): print("haha") #如果需要循環調用&#xff0c;就要添加以下方法 timer threading.Timer(86400, fun…

Python學習16 正則表達式2 re模塊

re 模塊 re 模塊&#xff1a; Python的 re 模塊實現了正則表達式處理的功能。 導入re模塊后&#xff0c;使用findall、search函數可以進行匹配 查找&#xff1a;match和search 多個匹配上的&#xff0c;也只會返回第一個匹配上的 re.match()&#xff1a; 需要特別注意的是&…

STL源碼剖析 內存基本處理工具 初始化空間的五個函數

初始化空間的五個函數構造函數 construct()析構函數 destroy()剩余三個底層函數 和 高層函數之間的對應關系如下uninitialized_copy() 對應 copy()uninitialized_fill() 對應 fill()uninitialized_fill_n() 對應 fill_n()使用<memory>使用上述三個底層函數 uninitiali…

單基因gsea_篩到5分的核心基因以后你可以怎么做?

這一次我們從一些已經發表的文章拆解&#xff0c;我們來看看&#xff0c;你找到了一個核心基因以后&#xff0c;你可以怎么做呢&#xff1f;我們就不說那么多廢話了&#xff0c;直接用幾篇文章的解讀來帶著大家領會一下如何去進行下一步的分析。Case1&#xff1a;預后標志物免疫…

安卓 原生okhttp使用get與post獲取網絡數據

網址 https://square.github.io/okhttp/ 配置 依賴 在module的build.gradle中&#xff1a; implementation com.squareup.okhttp3:okhttp:3.14.7implementation com.squareup.okio:okio:1.17.5AndroidManifest.xml <uses-permission android:name"android.permissi…

STL源碼剖析 迭代器的概念和traits編程技法

迭代器&#xff1a;依序巡防某個聚合物(容器)所含的各個元素&#xff0c;但是不需要暴露這個聚合物的內部表述方式核心思想&#xff1a;將容器和算法分開&#xff0c;彼此獨立設計容器和算法的泛型化&#xff0c;均可以使用模板&#xff0c;使用迭代器連接容器和算法例子 templ…

.sql文件如何執行_干貨|一條SQL查詢語句是如何執行的

作者&#xff1a;wanber鏈接&#xff1a;https://blog.nowcoder.net/n/9e120e8f1314466bb44fe706b283dc20

STL源碼剖析 5中迭代器型別

最常使用的5種迭代器的型別 為 value_type、difference_type、pointer、reference、iterator_category。如果想要自己開發的容器和STL進行適配&#xff0c;就需要定義上述5種類型 iteraor_traits 必須針對傳入的型別為 pointer 或者 pointer-to-const設計偏特化版本 template &…

Python學習16 正則表達式3 練習題

用戶名匹配 1.用戶名匹配&#xff1a;由數字、大小寫字母、下劃線_、中橫線-組成&#xff0c;長度為6-12位&#xff0c;不能以數字開頭。 import re usernameab578_-SDF resultre.search(^[a-zA-Z_-][0-9a-zA-Z_-]{5,12}$,username) print(result)郵箱 2.驗證輸入的郵箱&…

加載tf模型 正確率很低_深度學習模型訓練全流程!

↑↑↑關注后"星標"Datawhale每日干貨 & 每月組隊學習&#xff0c;不錯過Datawhale干貨 作者&#xff1a;黃星源、奉現&#xff0c;Datawhale優秀學習者本文從構建數據驗證集、模型訓練、模型加載和模型調參四個部分對深度學習中模型訓練的全流程進行講解。一個成…

Python學習17 Turtle庫繪圖

學習網址&#xff1a;https://docs.python.org/zh-cn/3/library/turtle.html Turtle庫 Turtle庫是Python語言中一個很流行的繪制圖像的函數庫&#xff0c;一個小烏龜&#xff0c;在一個橫軸為x、縱軸為y的坐標系原點&#xff08;畫布中心&#xff09;&#xff0c;(0,0)位置開…