日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring转发和重定向

發布時間:2024/1/23 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring转发和重定向 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<div><!-- 登陸頁面--><form action="demo/login" method="post">賬戶:<input type="text" name="username"/><br/>密碼:<input type="password" name="pwd"/><br/><input type="submit" value="登錄"/></form></div> <form action="demo/login" method="post">賬戶:<input type="text" name="username"/><br/>密碼:<input type="password" name="pwd"/><br/><input type="submit" value="登錄"/></form></div> 對于控制器內的方法間的調用,有轉發和重定向兩種。 @RequestMapping("/login")public String login(Userinfo u,HttpSession s){System.out.println("login:"+u.getUsername()+","+u.getPwd());s.setAttribute("u",u);//放到session里面;return "redirect:list";//相當于從客戶端再次發送請求//return "forward:list";//轉發,是服務器頁面轉了一下}@RequestMapping("/list")public String list(Userinfo u,HttpSession s){System.out.println(s.getAttribute("u"));return "list";//返回頁面}

轉發對于數據Userinfo來說,可以在list頁面顯示出來,從登陸頁面到list頁面,而如果是重定向,則不能有數據的傳遞。

? <body>
? ? 我是重定向、或轉發過來的頁面.${u.username },${u.pwd }
? </body>

?

?

請求重定向與請求轉發的比較,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以讓瀏覽器獲得另外一個URL所指向的資源,但兩者的內部運行機制有很大的區別。

1.RequestDispatcher.forward方法只能將請求轉發給同一個Web應用中的組件,HttpServletResponse.sendRedirect不僅可以重定向到當前應用程序的其他資源,還可以重定向到同一個站點上的其他應用程序的資源,甚至是使用絕對URL重定向到其他站點的資源。對于sendRedirect如果傳遞的URL以”/”開頭,他是相對于整個Web站點的根目錄;對于forward如果傳遞的URL以”/”開頭,它是相對于當前Web應用程序的根目錄。

2.sendRedirect對瀏覽器做出的響應是重新發出對另外一個URL的訪問請求,forward在服務器端內部將請求轉發給另外一個資源,瀏覽器只知道發出了請求并得到了響應結果

3.forward的調用者與被調用者之間共享相同的request對象和response對象,他們屬于同一個訪問請求和響應過程;sendRedirect的調用者與被調用者使用各自的request和response對象,屬于兩個獨立的訪問請求和響應過程

請求重定向以redirect:開頭,請求轉發以forward:開頭;?

?

總結

以上是生活随笔為你收集整理的spring转发和重定向的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。