介紹JSP中request屬性的用法_JSP教程
推薦:J2EE應(yīng)用服務(wù)器Jboss Tomcat安裝攻略JBoss Tomcat已經(jīng)成為一個(gè)免費(fèi)的開源的穩(wěn)定的J2EE服務(wù)器,雖然在JBoss中部署J2EE沒有商用J2EE服務(wù)器那么方便,基本都是通過手工編寫XML配置文件,但是這樣可以讓我們更容易理解J2EE的來龍去
一、request.getParameter() 和request.getAttribute() 區(qū)別
(1)request.getParameter()取得是通過容器的實(shí)現(xiàn)來取得通過類似post,get等方式傳入的數(shù)據(jù),request.setAttribute()和getAttribute()只是在web容器內(nèi)部流轉(zhuǎn),僅僅是請(qǐng)求處理階段。
(2)request.getParameter()方法傳遞的數(shù)據(jù),會(huì)從Web客戶端傳到Web服務(wù)器端,代表HTTP請(qǐng)求數(shù)據(jù)。request.getParameter()方法返回String類型的數(shù)據(jù)。
request.setAttribute()和getAttribute()方法傳遞的數(shù)據(jù)只會(huì)存在于Web容器內(nèi)部
還有一點(diǎn)就是,HttpServletRequest類有setAttribute()方法,而沒有setParameter()方法。
拿一個(gè)例子來說一下吧,假如兩個(gè)WEB頁面間為鏈接關(guān)系時(shí),就是說要從1.jsp鏈接到2.jsp時(shí),被鏈接的是2.jsp可以通過getParameter()方法來獲得請(qǐng)求參數(shù).
假如1.jsp里有
的話在2.jsp中通過request.getParameter("username")方法來獲得請(qǐng)求參數(shù)username:
< % String username=request.getParameter("username"); %>
但是如果兩個(gè)WEB間為轉(zhuǎn)發(fā)關(guān)系時(shí),轉(zhuǎn)發(fā)目的WEB可以用getAttribute()方法來和轉(zhuǎn)發(fā)源WEB共享request范圍內(nèi)的數(shù)據(jù),也還是說一個(gè)例子吧。
有1.jsp和2.jsp
1.jsp希望向2.jsp傳遞當(dāng)前的用戶名字,如何傳遞這一數(shù)據(jù)呢?先在1.jsp中調(diào)用如下setAttribute()方法:
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>
在2.jsp中通過getAttribute()方法獲得用戶名字:
<% String username=(String)request.getAttribute("username"); %>
二、request.getAttribute()與request.setAttribute()
request.getAttribute("nameOfObj")可得到JSP頁面一表單中控件的Value。其實(shí)表單控件中的Object的 name與value是存放在一個(gè)哈希表中的,所以在這里給出Object的name會(huì)到哈希表中找出對(duì)應(yīng)它的value。
而不同頁面間傳值使用request.setAttribute(position, nameOfObj)時(shí),只會(huì)從a.jsp到b.jsp一次傳遞,之后這個(gè)request就會(huì)失去它的作用范圍,再傳就要再設(shè)一個(gè) request.setAttribute()。而使用session.setAttribute()會(huì)在一個(gè)過程中始終保有這個(gè)值。
P.S.:javascript與JSP中不能相互傳值,因?yàn)?#106avascript運(yùn)行在客戶端,而JSP運(yùn)行在服務(wù)器端。若想使它們之間可以相互傳遞參數(shù),可以在JSP中設(shè)置一個(gè)hidden控件,用它的value結(jié)合上面所說的用法來傳遞所需的數(shù)值。
分享:對(duì)JSP頁面?zhèn)髦抵形膩y碼的簡單解決方法源代碼,a.jsp往b.jsp傳值: a.jsp頁面內(nèi)容: name: b.jsp頁面內(nèi)容: 現(xiàn)象:中文亂碼,比如“??????” 解決方法如下: 方法一: 1. 在b.jsp中把pageEncodin
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁模板:關(guān)于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
- 相關(guān)鏈接:
- 教程說明:
JSP教程-介紹JSP中request屬性的用法
。