亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

JSP request.setAttribute()詳解及實例

2020-01-31 16:50:22
字體:
來源:轉載
供稿:網友

 javascript request.setAttribute()詳解

request.setAttribute()怎么用的?

JSP1代碼

String [] test=new String[2]; test[0]="1"; test[1]="2"; request.setAttribute("test",test) ; response.sendRedirect("jsp2.jsp"); 

JSP2代碼

String test[]=(String[])request.getAttribute("test"); out.print(test); 

為什么JS P2中會找不到test?

用來在同一個request周期中保存變量使用。比如servlet調用后,推出JSP頁面,這是一個request周期,如果在Jsp頁面需要servlet中的一些 處理結構,就從request.getAttribute中獲取。

sendRedirect()方法是通過瀏覽器重定向的,所以第二個JSP頁面中獲得的request并非是前一個頁面的request(兩次請求生成了前后兩個不同的 request對象了)。

用RequestDispatcher接口的forward()方法試試看。

都在一起使用

List list = new CommonsDao().getAllCommons(); request.setAttribute("CommonsList", list); request.getRequestDispatcher("View.jsp").forward(request, response);  request.getAttribute()與request.setAttribute() request.getAttribute("nameOfObj") 

可得到JSP頁面一表單中控件的Value。其實表單控件中的Object的 name與value是存放在一個哈希表中的,所以在這里給出Object的name會到哈希表中找出對應它的value。

而不同頁面間傳值使用request.setAttribute(position, nameOfObj)時,只會從a.jsp到b.jsp一次傳遞,之后這個request就會失去它的作用范圍,再傳就要再設一個 request.setAttribute()。而使用session.setAttribute()會在一個過程中始終保有這個值。

P.S:JavaScript與JSP中不能相互傳值,因為JavaScript運行在客戶端,而JSP運行在服務器端。若想使它們之間可以相互傳遞參數,可以在JSP中設置一個hidden控件,用它的value結合上面所說的用法來傳遞所需的數值。

  1. request.getRequestDispatcher()是請求轉發,前后頁面共享一個request
  2. response.sendRedirect()是重新定向 前后頁面不是一個request
  3. sendRedirect是通知IE再次提交一個http請求, dispatcher是直接轉到目的地址,最直接得表現,應該是dispatcher后的IE地址欄地址是不變的
  4. request.getRequestDispatcher()是服務器端跳轉
  5. response.sendRedirect()是客戶端跳轉

關于request.request.getRequestDispatcher().forward()方法的一點看法

今天在調試一個Servlet程序的時候,報了以下錯誤!

java.lang.IllegalStateException: Cannot forward after response has been committed

根據字面理解的話,意識是在response已經提交后程序不能再一次的跳轉!

研究代碼以后發現,是因為前面已經執行過一次request.request.getRequestDispatcher().forward()

但是后面的request.request.getRequestDispatcher().forward()依然被執行到了!

那么很有理由相信request.request.getRequestDispatcher().forward()跳轉本身是不會返回什么,也不會終止程序體的執行!
程序體后面該執行的還是會執行!

sendRedirect()是請求從定向,和超連接是一個意思,比如你在A頁面中寫一個request.setAtribute,sendRedirect到B頁面,就是說服務器從A頁面中給你一個response,然后你的瀏覽器再去request到B頁面,由于有兩次request和response,是不能在B頁面取到request.setAtribute里的值,能從地址欄看到url的改變

request.getRequestDispatcher().forward(request,response)是請求分發器,比如你在A頁面中寫一個request.setAtribute,request.getRequestDispatcher().forward(request,response)到B頁面,那就是說服務器給你的response是B頁面的,并且只有一次request和response,所以是能在B頁面取到request.setAtribute里的值,地址欄的url仍然是A頁面的

request.sendRedirect 與 request.getRequestDispatcher.forward 的區別

1.forward重定向是在容器內部實現的同一個Web應用程序的重定向,所以forward方法只能重定向到同一個Web應用程序中的一個資源,重定向后瀏覽器地址欄URL不變,而sendRedirect方法可以重定向到任何URL, 因為這種方法是修改http頭來實現的,URL沒什么限制,重定向后瀏覽器地址欄URL改變。

2.forward重定向將原始的HTTP請求對象(request)從一個servlet實例傳遞到另一個實例,而采用sendRedirect方式兩者不是同一個application。即參數的傳遞方式不一樣:forward的form參數跟著傳遞,所以在第二個實例中可以取得HTTP請求的參數。sendRedirect只能通過鏈接傳遞參數,response.sendRedirect(“login.jsp?param1=a”)。

3.sendRedirect能夠處理相對URL,自動把它們轉換成絕對URL,如果地址是相對的,沒有一個‘/',那么Web container就認為它是相對于當前的請求URI的。比如,如果為response.sendRedirect("login.jsp"),則會從當前servlet 的URL路徑下找login.jsp: http://localhost:8081/dms/servlet/Servlet 重定向的URL: http://localhost:8081/dms/servlet/login.jsp,如果為response.sendRedirect("/login.jsp")則會從當前應用徑下查找url:http://localhost:8081/login.jsp。而forward不能這樣處理相對路徑。

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97av在线影院| 91免费版网站入口| 神马国产精品影院av| 91精品久久久久久久久久久久久久| 亚洲激情视频在线播放| www.亚洲成人| 亚洲日韩中文字幕| 日韩精品视频免费在线观看| 欧美精品videosex极品1| 777精品视频| 91精品久久久久久久| 久久精品色欧美aⅴ一区二区| 奇米影视亚洲狠狠色| 隔壁老王国产在线精品| 51视频国产精品一区二区| 欧美精品福利在线| 国产精品视频xxxx| 午夜精品久久久久久久99热| 欧美最猛黑人xxxx黑人猛叫黄| 中文字幕亚洲情99在线| 亚洲色图国产精品| 中文在线资源观看视频网站免费不卡| 欧美成人亚洲成人日韩成人| 亚洲黄色免费三级| 亚洲欧美激情另类校园| 国内精品久久影院| 久久男人资源视频| 久久噜噜噜精品国产亚洲综合| 国产91精品久久久久久久| 亚洲精品视频在线观看视频| 亚洲欧美日韩综合| 国产美女精品免费电影| 欧美激情亚洲国产| 欧美成人手机在线| 久久99热精品这里久久精品| 在线成人中文字幕| 国产精品吹潮在线观看| 日韩精品极品视频| 亚洲在线视频福利| 日韩二区三区在线| 国产精品亚洲综合天堂夜夜| 久久亚洲精品国产亚洲老地址| 精品国产福利视频| 亚洲区在线播放| 亚洲跨种族黑人xxx| 亚洲在线视频观看| 亚洲欧美自拍一区| 国产精品久久久久国产a级| 成人做爽爽免费视频| 欧美精品免费在线| 色偷偷888欧美精品久久久| 一区二区三区无码高清视频| 亚洲精品日韩丝袜精品| 国产婷婷成人久久av免费高清| 精品国产一区二区三区久久久| 91精品视频免费观看| 亚洲一区二区久久| 热草久综合在线| 久久久中文字幕| 97在线视频免费| 全球成人中文在线| 国产精品美腿一区在线看| 精品性高朝久久久久久久| 97视频网站入口| 热草久综合在线| 日韩av快播网址| 成人精品一区二区三区电影黑人| 在线观看亚洲区| zzjj国产精品一区二区| 久久亚洲综合国产精品99麻豆精品福利| 欧美高清不卡在线| 亚洲国产成人精品电影| 久久精品国产91精品亚洲| 亚洲欧美日韩精品久久奇米色影视| 亚洲四色影视在线观看| 久久久av免费| 51ⅴ精品国产91久久久久久| 在线观看国产精品日韩av| 国产精品高潮呻吟视频| 国产成+人+综合+亚洲欧美丁香花| 亚洲爱爱爱爱爱| 日韩欧美国产网站| 亚洲第一级黄色片| 一区二区亚洲精品国产| 亚洲va欧美va国产综合久久| 91久久中文字幕| 日韩精品亚洲元码| 日韩欧美国产中文字幕| 精品欧美国产一区二区三区| www.精品av.com| 日本亚洲欧洲色α| 国产69久久精品成人看| 日韩av高清不卡| 午夜精品久久久久久久99热| 一区二区欧美亚洲| 欧美有码在线观看视频| 欧美成人中文字幕| 欧美一区二粉嫩精品国产一线天| 亚洲美女视频网| 日韩精品在线观| 最近中文字幕2019免费| 亚洲欧美中文字幕在线一区| 91亚洲精品久久久| 97精品视频在线播放| 国产精品日日摸夜夜添夜夜av| 97精品国产97久久久久久| 国产亚洲欧美一区| 国产精品影片在线观看| 欧美成人免费在线视频| 亚洲国产成人爱av在线播放| 久久国内精品一国内精品| 在线观看亚洲视频| 成人国内精品久久久久一区| 久久好看免费视频| 日韩国产欧美精品一区二区三区| 久久国产精品网站| 亚洲人成人99网站| 中文字幕亚洲无线码在线一区| 成人观看高清在线观看免费| 欧美性理论片在线观看片免费| 国产精品第一第二| 日韩在线观看精品| 亚洲一区精品电影| 96精品久久久久中文字幕| 日韩视频永久免费观看| 亚洲高清在线观看| 高清日韩电视剧大全免费播放在线观看| 国产91色在线播放| 欧美激情免费在线| 久久躁狠狠躁夜夜爽| 国产在线视频欧美| 国产一区在线播放| 久久黄色av网站| 日韩成人久久久| 91在线色戒在线| 91精品国产91久久久久久吃药| 日韩免费在线播放| 亚洲情综合五月天| 国产成人精品一区二区| 亚洲午夜精品久久久久久性色| 日韩电影大全免费观看2023年上| 久久青草精品视频免费观看| 日本一区二区在线免费播放| 久久影视电视剧免费网站| 久久久久久久999| 国产精品黄色av| 色一情一乱一区二区| 人九九综合九九宗合| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久国产精品免费| 久久精品国产99国产精品澳门| 国产91在线视频| 日韩黄色高清视频| 国产日韩欧美在线看| 国产精品女主播视频| 国产视频在线一区二区| 欧美激情一级精品国产| 久久久久久中文字幕| 欧美福利视频网站| 日韩欧美精品中文字幕| 高跟丝袜一区二区三区| 精品国产依人香蕉在线精品| 一本一本久久a久久精品综合小说| 91在线视频九色|