JSP中Request屬性范圍

JSP屬性范圍,通過以下幾個測試代碼來學習request屬性的范圍


測試一(JSP動態指令方式傳參):

測試內容:

<jsp:param .../>添加參數,通過<jsp:forward page="...">來實現服務器端跳轉,以此來測試request屬性的范圍:

頁面RequestScopeDemo.jsp (添加info1參數) —> 通過<jsp:forward page="RequestScopeDemo_1.jsp">跳轉

頁面RequestScopeDemo_1.jsp (添加info2參數) —> 通過<jsp:forward page="RequestScopeDemo_2.jsp">跳轉

頁面RequestScopeDemo_2.jsp (request對象中取到了info1、info2兩個參數的值)

CODE:

RequestScopeDemo.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 -  Page 1</title></head>
<body><h1>跳轉前的頁面:page 1</h1><%//想輸入一個字符串“<jsp:param ... >”不能直接輸出必須通過轉義輸出String info1="page 1 頁面中添加(<jsp:param ... />)的參數 !";request.setCharacterEncoding("utf-8");%><jsp:forward page="RequestScopeDemo_1.jsp"><jsp:param name="info1" value="<%=info1%>" /></jsp:forward>
</body>
</html>

RequestScopeDemo1.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 - page2</title></head>
<body><h1>跳轉中頁面:page 2</h1><%String info2="page 2 頁面中添加(<jsp:param ... />)的參數 !";	%>info參數:<%=request.getParameter("info2")%><br/><jsp:forward page="RequestScopeDemo_2.jsp"><jsp:param name="info2" value="<%=info2%>" /></jsp:forward>
</body>
</html>

RequestScopeDemo2.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 - page3</title></head>
<body><h1>跳轉到的頁面:page 3</h1><%/*request對象的源頭設置了編碼,所以這里就不需要設置啦*///request.setCharacterEncoding("utf-8");		%><h2>Page1頁面中傳遞過來的info1參數:<%=request.getParameter("info1")%></h2><br/><h2>Page2頁面中傳遞過來的info2參數:<%=request.getParameter("info2")%></h2><br/><h2>request.getCharacterEncoding()的值:<%=request.getCharacterEncoding()%></h2>
</body>
</html>

測試結果:


測試二(request.setAttribute()封裝屬性方式傳參):

測試內容:

request.setAttribute()方法封裝參數,通過<jsp:forward page="...">來實現服務器端跳轉,以此來測試request屬性的范圍:

頁面RequestScopeDemo_t.jsp (添加info1參數) —> 通過<jsp:forward page="RequestScopeDemo_t1.jsp">跳轉

頁面RequestScopeDemo_t1.jsp (添加info2參數) —> 通過<jsp:forward page="RequestScopeDemo_t2.jsp">跳轉

頁面RequestScopeDemo_t1.jsp (request對象中取到了info1、info2兩個參數的值)

CODE:

RequestScopeDemo_t.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 -  Page 1</title></head>
<body><h1>跳轉前的頁面:page 1</h1><%request.setCharacterEncoding("utf-8");request.setAttribute("info1","Page1中添加(setAttribute)的參數");%><jsp:forward page="RequestScopeDemo_t1.jsp" />
</body>
</html>

RequestScopeDemo_t1.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 - page2</title></head>
<body><h1>跳轉中頁面:page 2</h1><%request.setAttribute("info2","Page2中添加(setAttribute)的參數");%>跳轉中的頁面,info1參數:<%=request.getAttribute("info1")%><br/><jsp:forward page="RequestScopeDemo_t2.jsp" />
</body>
</html>

RequestScopeDemo_t2.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 - page3</title></head>
<body><h1>跳轉到的頁面:page 3</h1><h2>第一個頁面,info1參數:<%=request.getAttribute("info1")%></h2><br/><h2>第二個頁面,info2參數:<%=request.getAttribute("info2")%></h2><br/><h2>request.getCharacterEncoding()的值:<%=request.getCharacterEncoding()%></h2>
</body>
</html>

測試結果:


測試三(URL地址方式傳參):

測試內容:

URL地址方式添加參數,通過超鏈接<a href=".." ..>來實現服客戶端跳轉,以此來測試request屬性的范圍:

頁面RequestScopeDemo_1.jsp 頁中通過<a href="RequestScopeDemo_2.jsp?info1=Page1頁面的參數">鏈接到下一個頁面</a>跳轉

頁面RequestScopeDemo_2.jsp 頁中通過<a href="RequestScopeDemo_3.jsp?info2=Page1頁面的參數">鏈接到下一個頁面</a>跳轉

頁面RequestScopeDemo_2.jsp(request對象中取到了info2的參數值)

CODE:

RequestScopeDemo_1.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Qequest屬性范圍 -  Page 1</title></head>
<body><h1>跳轉前的頁面:page 1</h1><%request.setCharacterEncoding("utf-8");%><a href="RequestScopeDemo_2.jsp?info1=Page1頁面的參數">鏈接到下一個頁面</a>
</body>
</html>

RequestScopeDemo_2.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 - page2</title></head>
<body><h1>跳轉中頁面:page 2</h1><%request.setAttribute("info2","Page2中的參數");%>跳轉中的頁面,info1參數:<%=request.getParameter("info1")%><br/><a href="RequestScopeDemo_3.jsp?info2=Page2頁面的參數">鏈接到下一個頁面</a>
</body>
</html>

RequestScopeDemo_3.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request屬性范圍 - page3</title></head>
<body><h1>跳轉到的頁面:page 3</h1><h2>第一個頁面,info1參數:<%=request.getParameter("info1")%></h2><br/><h2>第二個頁面,info2參數:<%=request.getParameter("info2")%></h2><br/><h2>request.getCharacterEncoding()的值:<%=request.getCharacterEncoding()%></h2>
</body>
</html>

測試結果:



總結:request屬性在服務器端跳轉時request相當于是一個消息信息在各個頁面中傳遞,各個頁面是共享同一個request對象。


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

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

相關文章

Spring MVC – Flash屬性

最新的Spring Framework版本&#xff08;3.1&#xff09;帶來了有趣的功能&#xff0c;稱為Flash屬性。 這是對我很久以前在我的一篇文章中提到的問題的補救措施&#xff1a; Spring MVC –會話屬性處理。 這個問題可以用幾句話來形容&#xff1a;如果我們想通過兩個控制器之間…

000 快速排序算法

一&#xff1a;概述 快速排序是東尼.霍爾所發展的一種快速排序算法。 對于n個項目的排序&#xff0c;平均O&#xff08;n*logn&#xff09;次比較&#xff0c;在比較糟糕的情況下是O&#xff08;n2&#xff09;次比較。 采用分治策略把一個串行分為兩個子串行。 二&#xff1a;…

nginx post請求超時_nginx記錄分析網站響應慢的請求(ngx_http_log_request_speed)

nginx模塊ngx_http_log_request_speed可以用來找出網站哪些請求很慢&#xff0c;針對站點很多&#xff0c;文件以及請求很多想找出哪些請求比較慢的話&#xff0c;這個插件非常有效.作者的初衷是寫給自己用的&#xff0c;用來找出站點中處理時間較長的請求, 這些請求是造成服務…

如何用angularjs制作一個完整的表格之一__創建簡單表格

初步接手人生的第一個項目&#xff0c;需要用angularjs制作表格和實現各種功能&#xff0c;因此遇到了各種問題和以前不熟悉的知識點&#xff0c;在此記錄下來&#xff0c;以供大家學習交流&#xff0c;解決方式可能并不完善或符合規范&#xff0c;如果大家有更好的方式歡迎指出…

Java的String類是上帝的對象嗎?

10月&#xff0c;我寫了一個博客&#xff0c;題為“上帝對象中的頂級特朗普”&#xff0c;其中談到了用167種不同的方法發現的對象的發現&#xff0c;這些方法將該對象與應用程序的所有其他部分鏈接在一起&#xff0c;并且正如您所期望的那樣&#xff0c;上帝或怪物物的一般標準…

十步完全理解SQL

很多程序員視 SQL 為洪水猛獸。SQL 是一種為數不多的聲明性語言&#xff0c;它的運行方式完全不同于我們所熟知的命令行語言、面向對象的程序語言、甚至是函數語言&#xff08;盡管有些人認為 SQL 語言也是一種函數式語言&#xff09;。 我們每天都在寫 SQL 并且應用在開源軟件…

curl命令java_上curl java 模擬http請求

最近&#xff0c;我的項目要求java模擬http請求&#xff0c;獲得dns解決 tcp處理過的信息特定的連接。java api提供urlConnection apache提供的httpClient都不能勝任該需求&#xff0c;二次開發太費時間。于是google之。最后 得出兩種解決的方法&#xff1a;一是使用HTTP4J。該…

androidstudio 優化gradle編譯效率

androidstuido 使用gradle自己主動構建和編譯。有時做少量改動編譯須要等待時間過長&#xff0c;近期Erik Hellman編寫的Boosting the performance for Gradle in your Android projects&#xff08; 譯文 參考1&#xff09;提到了此問題的優化方法。1.gradle的升級到2.4 。 2.…

Common Knowledge_快速冪

問題 I: Common Knowledge 時間限制: 1 Sec 內存限制: 64 MB提交: 9 解決: 8[提交][狀態][討論版]題目描述 Alice and Bob play some game in which they score points. Each of the two has an n-digit scoreboard which depicts numbers in base 10 (with leading zeroes).…

播放2.0:Akka,Rest,Json和依賴項

在過去的幾個月中&#xff0c;我越來越多地涉足scala。 Scala與“ Play框架”一起為您提供了一個非常有效且快速的開發環境&#xff08;即&#xff0c;您掌握了Scala語言的特質之后&#xff09;。 Play框架背后的家伙一直在努力開發新版本的Play 2.0。 在Play 2.0中&#xff0c…

python使用多線程寫生成器_Python學習——多線程,異步IO,生成器,協程

Python的語法是簡潔的&#xff0c;也是難理解的。比如yield關鍵字&#xff1a;def fun():for i in range(5):print(test)x yield iprint(good, x)if __name__ __main__:a fun()# print(a.__next__())# print(a.__next__())# print(a.__next__())y a.send(None)y a.send(-1…

Python與C++結構體交互

需求&#xff1a;根據接口規范&#xff0c;實現與服務端的數據交互 服務端結構體分包頭、包體、包尾 包頭C結構體示例如下 1 typedef struct head2 {3 BYTE string1;4 BYTE string2; //包類型5 BYTE string3; //版本號,目前為06 char s…

Ubuntu下安裝OpenSSH Server并在客戶端遠程連接Ubuntu

本文主要是向讀者介紹了如何在Ubuntu系統下安裝OpenSSH Server并在客戶端遠程連接Ubuntu&#xff0c;共有兩種方法&#xff0c;一種是命令行安裝&#xff1b;另一種是通過Ubuntu Software Center安裝&#xff0c;希望對大家能有幫助&#xff01; 方法一&#xff08;推薦&#…

算法:老鼠走迷宮問題

算法&#xff1a;老鼠走迷宮問題(初) 【寫在前面】 老鼠走迷宮問題的遞歸實現&#xff0c;是對遞歸思想的一種應用。 【問題描述】 給定一個二維數組&#xff0c;數組中2表示墻壁&#xff0c;0表示通路&#xff0c;由此數組可展示為一個迷宮圖。給定入口位置和出口位置&#xf…

rust python對比_Python Rust 迭代器對比

迭代是數據處理的基石&#xff0c;而 Python 中所有集合都可以迭代&#xff0c;這是 Python 讓使用者感到非常方便的特征之一。下面是一些在 Python 中經常使用的迭代模式# 列表for i in [1, 2, 3, 4]:print(i)# 字典di {a: 1, b: 2, c: 3}# 迭代鍵for k in di.keys():print(k…

WebSphere Application Server性能調整工具包

IBM已發布了WebSphere Application Server性能調整工具包 &#xff0c;該工具包具有從Eclipse工作區*監視多個 WebSphere Application Server的功能。 該工具使用WAS Performance Monitoring統計信息來獲取并繪制圖表&#xff0c;以指示服務器的運行狀況。 *請注意&#xff0c;…

CentOS 配置防火墻操作實例(啟、停、開、閉端口)

CentOS 配置防火墻操作實例&#xff08;啟、停、開、閉端口&#xff09;&#xff1a; 注&#xff1a;防火墻的基本操作命令&#xff1a; 查詢防火墻狀態: [rootlocalhost ~]# service iptables status<回車> 停止防火墻: [rootlocalhost ~]# service iptables stop &…

linux常用命令-壓縮解壓命令

壓縮解壓命令 目錄 1. 壓縮解壓命令&#xff1a;gzip 2. 壓縮解壓命令&#xff1a;gunzip 3. 壓縮解壓命令&#xff1a;tar 4. 壓縮解壓命令&#xff1a;zip 5. 壓縮解壓命令&#xff1a;unzip 6. 壓縮解壓命令&#xff1a;bzip2 7. 壓縮解壓命令&#xff1a;bunzip2 1. 壓縮解…

達夢數據庫查詢數據庫所有表名_達夢數據庫的一些實用小SQL

1)當前數據庫中的模式名&#xff1a;select distinct object_name TABLE_SCHEMA from all_objects where object_type SCH;2)查出各模式對應的用戶&#xff1a;selectSCH_OBJ.NAME ,SCH_OBJ.ID ,SCH_OBJ.CRTDATE,USER_OBJ.NAMEfrom(select NAME, ID, PID, CRTDATE from …

設置Java EE 6開發環境

本教程簡要說明了如何設置典型的環境來開發基于Java EE 6的應用程序。 除了可以正常工作的Windows XP客戶端具有足夠的CPU能力和內存外&#xff0c;本教程沒有其他先決條件。 在教程中&#xff0c;我們將需要安裝以下組件&#xff1a; Java 6 JDK更新26 用于Java EE開發人員的…