Request的getParameter和getAttribute方法的差別

HttpServletRequest.getParameter("modelName");能取到想要的modelObject嗎?經過測試之后。發現是不能的。

后來想想。其它道理挺簡單的,當兩個Web組件之間為轉發關系時,轉發源會將要共享request范圍內的數據先用setAttribute將數據放入到HttpServletRequest對象中,然后轉發目標通過getAttribute方法來取得要共享的數據。而MVC中用的就是Web組件之間的轉發啊!真是笨。怎么當時沒有想到呢?

?????以下整理一下getParameter和getAttribute的差別和各自的使用范圍。

?????(1)HttpServletRequest類有setAttribute()方法,而沒有setParameter()方法

??????(2)當兩個Web組件之間為鏈接關系時,被鏈接的組件通過getParameter()方法來獲得請求參數,比如假定welcome.jsp和authenticate.jsp之間為鏈接關系。welcome.jsp中有下面代碼:

?????<a?href="authenticate.jsp?username=wolf">authenticate.jsp?</a>

?????或者:

?????<form ?name="form1"?method="post"?action="authenticate.jsp">
????????請輸入用戶姓名:<input ?type="text"?name="username">
????????<input ?type="submit"?name="Submit"?value="提交">
?????</form>

??????在authenticate.jsp中通過request.getParameter("username")方法來獲得請求參數username:

??????<% ?String?username=request.getParameter("username");?%>

??????(3)當兩個Web組件之間為轉發關系時,轉發目標組件通過getAttribute()方法來和轉發源組件共享request范圍內的數據。

???????假定?authenticate.jsp和hello.jsp之間為轉發關系。authenticate.jsp希望向hello.jsp傳遞當前的username字,?怎樣傳遞這一數據呢?先在authenticate.jsp中調用setAttribute()方法:

????????<%
????????String?username=request.getParameter("username");
????????request.setAttribute("username",username);
????????%>

????????<jsp:forward?page="hello.jsp"?/>

????????在hello.jsp中通過getAttribute()方法獲得username字:

????????<%?String?username=(String)request.getAttribute("username");?%>
????????Hello:?<%=username?%>

????????從更深的層次考慮,request.getParameter()方法傳遞的數據。會從Webclient傳到Webserver端。代表HTTP請求數據。request.getParameter()方法返回String類型的數據。

????????request.setAttribute()和getAttribute()方法傳遞的數據僅僅會存在于Web容器內部,在具有轉發關系的Web組件之間共享。這兩個方法可以設置Object類型的共享數據。

????????request.getParameter()取得是通過容器的實現來取得通過類似post,get等方式傳入的數據。

????????request.setAttribute()和getAttribute()不過在web容器內部流轉,不過請求處理階段。

????????getAttribute是返回對象,getParameter返回字符串

???????總的來說:request.getAttribute()方法返回request范圍內存在的對象。而request.getParameter()方法是獲取http提交過來的數據。

轉載于:https://www.cnblogs.com/liguangsunls/p/6916518.html

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

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

相關文章

Spring Social入門–第2部分

幾周前&#xff0c;我寫了一篇文章&#xff0c;展示了我認為可以使用Spring Social編寫的最簡單的應用程序。 該應用程序讀取并顯示了Twitter用戶的公共數據&#xff0c;并被編寫為Spring Social和社交編碼領域的介紹。 但是&#xff0c;讓您的應用程序顯示用戶的公共數據只是故…

linux靜默刪除文件夾,Linux常用命令10 - unzip

zip 是最廣泛使用的歸檔文件, 除了linux&#xff0c;windows也是非常的廣泛。&#xff0c;支持無損數據壓縮。 zip 文件是包含一個或多個壓縮文件或目錄的數據容器。接下來&#xff0c;我將解釋如何使用 unzip 命令通過命令行解壓縮 Linux 系統中的文件。 還有與之對應就是 zip…

Git學習筆記(一) 安裝及版本庫介紹

安裝Git 最早Git是在Linux上開發的&#xff0c;很長一段時間內&#xff0c;Git也只能在Linux和Unix系統上跑。不過&#xff0c;慢慢地有人把它移植到了Windows上。現在&#xff0c;Git可以在Linux、Unix、Mac和Windows這幾大平臺上正常運行了。 在Linux上安裝Git 首先&#xff…

python基礎:迭代器、生成器(yield)詳細解讀

1. 迭代器 迭代器是訪問集合元素的一種方式。迭代器對象從集合的第一個元素開始訪問&#xff0c;知道所有的元素被訪問完結束。迭代器只能往前不會后退&#xff0c;不過這也沒什么&#xff0c;因為人們很少在迭代途中往后退。 1.1 使用迭代器的優點 對于原生支持隨機訪問的數據…

LazyInitializationException的四種解決方案–第2部分

本文從教程??的第1部分繼續。 使用PersistenceContextType.EXTENDED的有狀態EJB加載收集 該方法只能應用于與Full JEE環境兼容的應用程序&#xff1a;將EJB與PersistenceContextType.EXTENDED一起使用。 檢查下面的代碼&#xff0c;DAO的樣子&#xff1a; package com.ejb…

Linux將硬盤轉化為pv,Linux擴展硬盤 物理卷(PV) 卷組(VG) 邏輯卷(LV)

1、給虛擬機添加兩塊新的sata虛擬硬盤&#xff0c;容量8G和10G# fdisk -l 命令2、分別在這兩個硬盤上建立pvPvcreate /dev/sdb 創建一個物理卷/dev/sdb 磁盤名是 fdisk -l 查詢出來的Pvscan 查看當前所有物理卷Pvdisplay 查看當前所有物理卷的詳情3、創建VG&#xff0c;使得…

ubuntu 16.10 shu rufa meiy ou l e geng xi zhi hou

轉載于:https://www.cnblogs.com/ganmk--jy/p/6035894.html

ZOJ Monthly, November 2012

A.ZOJ 3666 Alice and Bob 組合博弈&#xff0c;SG函數應用#include<vector> #include<cstdio> #include<cstring> #include<algorithm>using namespace std;const int maxn 10000 100; int SG[maxn]; vector<int> g[maxn];int mex(int u) { /…

使用Aspect和Spring Profile進行電子郵件過濾

在Web應用程序開發期間&#xff0c;經常需要發送電子郵件。 但是&#xff0c;有時數據庫中會包含來自生產的數據&#xff0c;并且存在在電子郵件測試執行期間向真實客戶發送電子郵件的風險。 這篇文章將解釋如何避免在沒有在發送電子郵件功能中明確編寫代碼的情況下避免這種情…

紅旗linux 進不去圖形界面,進不了紅旗Linux6.0的圖形界面請高手幫忙

習生 于 2008-11-02 11:08:42發表:引用:原帖由 zhaoruiqi 于 2008-11-2 10:03 發表 我的也是進不了圖形界面&#xff0c;用文本安裝后進系統也一樣正常按rtl的方法對xorg.conf進行修改,已經能進入圖形界面。你看看樓上rtl的回復的能否對你有幫助。zhaoruiqi 于 2008-11-02 10:0…

總結繼承的幾種方式

簡單總結繼承的幾種方式 JavaScript作為一門弱類型的語言&#xff0c;本著精簡的原則&#xff0c;它取消了類的概念&#xff0c;只有對象的概念&#xff0c; 更是有萬物皆對象的說法。在基于類的面向對象方式中&#xff0c;對象&#xff08;object&#xff09;依靠類&#xff0…

Oracle SQL精妙SQL語句講解(二)

- 如果存在就更新&#xff0c;不存在就插入用一個語句實現 DROP TABLE t_mg; CREATE TABLE t_mg(code VARCHAR2(10), NAME VARCHAR2(10)); SELECT * FROM t_mg; MERGE INTO t_mg a USING (SELECT the code code, the name NAME FROM dual) b ON (a.code b.code) WHEN M…

Spring Security –在一個應用程序中有兩個安全領域

這篇博客文章主要是關于Spring Security配置的。 更具體地說&#xff0c;它打算顯示如何在一個Web應用程序中配置兩個不同的安全領域。 第一安全領域是針對瀏覽器客戶端的。 它使我們能夠在登錄頁面中登錄并訪問受保護的資源。 第二安全領域旨在處理來自android應用程序的REST…

基于Activiti工作流引擎實現的請假審核流程

概要 本文檔介紹的是某商用中集成的Activiti工作流的部署及使用&#xff0c;該框架用的Activiti版本為5.19.0。本文檔中主要以一個請假流程為例子進行說明&#xff0c;該例子的流程圖如下&#xff1a; 這是一個可以正常運作的工作流業務了&#xff0c;但是它也有不足的地方&…

linux編譯ffmpeg成so,「ffmpeg」一 mac 環境下編譯ffmpeg,生成so庫文件

1.下載ffmpeg源碼,官網&#xff0c;我這里直接采用git 方式下載&#xff1a;下載ffmpeg.png終端輸入git命令&#xff1a;靜靜等待~最后下載的版本為3.4.6 。image.png這里注意一下&#xff0c;剛開始我用的ndk版本是ndk-17b&#xff0c;在編譯該版本的ffmpeg時始終失敗&#xf…

4Web Service中的幾個重要術語

4.1WSDL: web service definition language 直譯:Webservice定義語言 1.對應一種類型的文件.wsdl 2.定義了webservice的服務端與客戶端應用交互傳遞請求和響應數據的格式和方式 3.一個webservice對應一個唯一的esdl文檔 4.2SOAP: simple object access protocal 直譯:簡單對象訪…

云端:亞馬遜,谷歌應用引擎,Windows Azure,Heroku,Jelastic

您想在云端嗎&#xff1f; 您有很多選擇。 我已經評估或使用了許多方法&#xff0c;因此這里有幾句話。 &#xff08;當我使用Java時&#xff0c;我將包括一些與Java相關的注釋&#xff0c;但大多數情況適用于所有&#xff08;受支持的&#xff09;語言。&#xff09; 但是在深…

JS-字符串操作-替換

<!DOCTYPE HTML><html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>無標題文檔</title><style>p { border:10px solid #ccc; background:#FFC; width:400px; padding:20px;…

linux下kegg注釋軟件,KEGG數據中全部代謝反應和代謝物注釋信息的下載

# 加載函數與R包 -----------------------------------------------------------------library(KEGGREST)library(plyr)source("./RbioRXN-master/RbioRXN-master/R/get.kegg.all.R")source("./RbioRXN-master/RbioRXN-master/R/get.kegg.byId.R")## KEGG數…

java常見異常

算術異常類&#xff1a;ArithmeticExecption空指針異常類&#xff1a;NullPointerException 類型強制轉換異常&#xff1a;ClassCastException 數組負下標異常&#xff1a;NegativeArrayException 數組下標越界異常&#xff1a;ArrayIndexOutOfBoundsException 違背安全原則異常…