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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

关于tomcat内路径跳转的一些思考

發布時間:2023/11/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于tomcat内路径跳转的一些思考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
初學jsp+servlet時經常碰上的幾個錯誤:404、路徑正確但頁面沒有任何內容、樣式和圖片丟失。
這幾個錯誤曾經讓我在debug時頭大,現在總結一下,其實它們都跟路徑有關,正是因為沒有處理好路徑跳轉的問題,才引發了這一連串的錯誤。 首先要說明的是:我們的頁面本來是沒有問題的,導致問題發生的是路徑跳轉。 那么,使我們的URL路徑跳轉的操作有哪些呢? 大概有以下幾種: 1、客戶端實現的跳轉(如html里的<a>標簽和表單提交、js里的window.location.href) 2、request.getRequestDispatcher 3、response.sendRedirect 那么這些路徑跳轉方式有什么不同呢? 首先是客戶端實現的跳轉: ? 客戶端實現的跳轉最不容易出現問題, 但值得注意的是“/”代表的不是項目的根路徑而是tomcat里指定的根路徑(默認在webapps/ROOT下) 注意:urlPatterns里的“/”除外,urlPatterns里的“/”指的是項目的根目錄! 所以要用request.getContextPath()來獲取項目的根路徑 如下: <%@?page?contentType="text/html;charset=UTF-8"?language="java"?%> <html>
<head>
<style type="text/css">
#p1 {
height: 20%;
width: 20%
}
</style>
</head>
<body>
<a href="<%=request.getContextPath()%>/servlet/AddServlet">click</a>

<img id="p1" src="<%=request.getContextPath()%>/spic/img9.jpg"/>
</body>
</html> 絕對路徑這么麻煩,那么為什么不用相對路徑呢?理由如下: 使用request.getContextPath()還有一點重要原因,在服務器內部(request.getRequestDispatcher)跳轉后,頁面對應URL路徑會發生變化,而此時若再以相對路徑去請求資源很可能請求不到需要的資源,此時就會發生樣式和圖片丟失的問題。


服務器內部跳轉(request.getRequestDispatcher) ? 以這種方式實現的跳轉在服務器內部運行,不會經過客戶端的處理,對應的URL路徑不會發生變化,究其原因是因為http的特性只允許客戶端發起的請求重新定位URL路徑。因此,即使在servlet里用request.getRequestDispatcher跳轉到其它路徑,實際上其路徑并不會發生改變,可以簡單的理解為把本來要跳轉到路徑的資源移到原路徑下運行。 可以看出如果我們在servlet里跳轉到另一個servlet或jsp頁面時,其路徑還是原路徑。 ? 值得注意的是: 因為在服務器內部跳轉后需要request和response對象才能進行后續操作,因此需要forward(request,response),如果沒有forward就會出現頁面沒有任何內容的錯誤,因為沒有獲取request,不能進行后續操作。 請求重定向(response.sendRedirect) 當在servlet里用請求重定向時,實際上是返回給客戶端信息,讓客戶端重新發一次http請求給指定的資源,因此才實現路徑的跳轉。 這樣可以真正實現路徑的跳轉,也不容易出現資源錯誤,但也因為重新進行的http請求(http的無狀態性),使request里保存的數據不能傳遞,數據只能通過“........?a=1&b=flypie”這種形式寫在URL里。

轉載于:https://www.cnblogs.com/flypie/p/5136528.html

總結

以上是生活随笔為你收集整理的关于tomcat内路径跳转的一些思考的全部內容,希望文章能夠幫你解決所遇到的問題。

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