為了能使這段文字醒目,我使用了font標簽(不重要),本篇文章將帶著我的誓言,伴隨大四至結束,后續的日子,我將對csdn和我的粉絲一起走下去;2022將至,我對2021的自己還算滿意,至少每天都很充實,也對得起自己,較為不足的地方就是csdn這塊,由于一時的粉絲上升讓自己迷失,一味看重粉絲的數量,而忘了還有那么多熱愛我的粉絲們,大三下學期也即將到來,我愿意和你們一起走下去,后續300個日日夜夜,我將在考研的路上伴隨著你們,愿我們都有目標,前程似錦!
(一) 前言
javaweb是每一個java程式員必須學習的技術,同時也潛移默化將后端程式員全
堆疊化,在javaweb中雖然對前端知識所用不多,但合理的使用前端知識將會使你
的界面可觀性增強,乃至給別人留下較好的印象,由于初期jsp的設計結構不太合
理,將資料的處理與頁面的渲染合并在了一起,于是在后面便出現了各種分離技術
,像"EL"和"JSTL"等,后面學習的servlet將充分分離mvc三層架構,使各層任務清
晰,下面就讓我們一起學習jsp中的"EL”和"JSTL".
(二) EL運算式
EL運算式:${expression}
expression是運算式
如果沒有指定expression的范圍,瀏覽器將會從page,request,session.application
四個作用域以次尋找,找不到則置為null
/*
page:只在本頁面內有效
request:在本次請求有效,forward后仍為一個request;重定向后不能訪問
session:在本次會話有效,只要瀏覽器不關閉!
application:全域有效,即使更換瀏覽器也可以訪問到
*/
例1:運算式的基本使用
代碼:
<%@ page import="java.util.*" %><%--
Created by IntelliJ IDEA.
User: 123
Date: 2021/12/26
Time: 15:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>page</title>
</head>
<body>
<%
//陣列型
String city[]={"西安","青島","濟南"};
request.setAttribute("citys",city);
//串列型
List<String> food=new ArrayList<>();
food.add("餃子");
food.add("面條");
food.add("老八漢堡");
session.setAttribute("foods",food);
//Map集合型
Map person=new HashMap();
person.put("1","小明");
person.put("2","小紅");
application.setAttribute("persons",person);
%>
${requestScope.citys[0]}
${sessionScope.foods[0]}
${applicationScope.persons["1"]}
運行:

重要代碼說明:
request.setAttribute(“citys”,city);
request的方法,將city字串陣列存放到request作用域中
session.setAttribute(“foods”,food);
session的方法,將food串列存放到session作用域中
application.setAttribute(“persons”,person);
application的方法,將person集合存放到application作用域中
${requestScope.citys[0]}
${sessionScope.foods[0]}
${applicationScope.persons[“1”]}
注意其中的紅字部分,并不是所定義的陣列名,串列名和集合名,而是將其加入各個域中的名字!!
例2:訪問權限示例
為了節省空間,下面代碼將只給出body部分
代碼:(<jsp:forward page=“test.jsp”></jsp:forward>示例)
測驗界面t.jsp
<%request.setCharacterEncoding("utf-8");%>
<%
String city[]={"西安","青島","濟南"};
request.setAttribute("citys",city);
%>
<jsp:forward page="test.jsp"></jsp:forward>
顯示界面test.jsp
<%="我是forward后的:"%>
${requestScope.citys[0]}
運行:

代碼:(response.sendRedirect(“testt.jsp”)示例)
測驗界面t.jsp
<%request.setCharacterEncoding("utf-8");%>
<%
String city[]={"西安","青島","濟南"};
request.setAttribute("citys",city);
response.sendRedirect("testt.jsp");
%>
顯示界面testt.jsp
<body>
<%="我是sendRendirt后的:"%>
${requestScope.citys[0]}
</body>
運行:

例3:內置物件param,paramValues
這兩個物件是和表單共同使用的,用于獲取表單的值,
按name屬性獲取,param回傳單個值;paramValues
獲取多個name相同的值,回傳陣列型.
示例(單個值和多選框):
代碼:
表單界面form.jsp
<body>
<%request.setCharacterEncoding("utf-8");%>
<form action="handle.jsp" method="post">
姓名:<input type="text" name="name"><br>
愛好:籃球<input type="checkbox" name="hobby" value="籃球">
足球:<input type="checkbox" name="hobby" value="足球">
排球:<input type="checkbox" name="hobby" value="排球">
<input type="submit" value="提交">
</form>
</body>
處理界面handle.jsp:
<body>
<%request.setCharacterEncoding("utf-8");%>
${param.name}
${paramValues.hobby[0]}
</body>
運行:




例4:empty判斷是否為空
格式:${empty expression},其中expression是運算式
代碼示例:
<body>
${empty requestScope.jj}
</body>
由于request域并沒有加入jj的值,所以結果應為空.

以上就是本期的所有內容,后續將不間斷更新,點個關注吧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/393907.html
標籤:java
