關於WEB-INF的訪問
先上圖
說明
WEB-INF裡內容只能由伺服器級別才能訪問,客戶端級別不能訪問。
伺服器級別的例子就是請求轉發
,轉發是由伺服器自己處理,跟客戶端(瀏覽器)無關,所以瀏覽器上的位址列也就不會改變。
客戶端級別的例子就是重定向
,兩次請求,兩次響應。所以位址列會改變。
為什麼設定這種許可權
為了安全。比如圖中success.jsp在WEB-INF目錄下,在頁面中用超連結a標籤或者js的location.href去直接轉向它,會找不到。因為這種是客戶端請求,設定這種許可權就能保證一些檔案的安全。
怎麼讓客戶端級別可以訪問
放在webapp下。
程式碼演示一波
- 看圖可知,login.jsp檔案在wepapp目錄下,也就是專案名下。
login.jsp
<form method="post" action="${pageContext.request.contextPath}/login3.action">
使用者名稱:<input type="text" name="username"><br>
密 碼:<input type="password" name="password"><br>
<input type="submit" value="登入">
</form>
- 輸入資料,提交到對映的處理器
UserController
@RequestMapping("login3.action")
public void login3(User user, HttpSession session, HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
if ("jack".equals(user.getUsername())&&"1234".equals(user.getPassword())){
request.getRequestDispatcher("WEB-INF/jsp/success.jsp").forward(request,response);
}else {
response.sendRedirect("WEB-INF/jsp/fail.jsp");
}
}
- 資料匹配正確,會請求轉發。
注意,success.jsp頁面在WEB-INF目錄下,所以請求轉發的路徑引數要加上WEB-INF/jsp。 - 資料匹配不正確,會重定向。
注意,fail.jsp在WEB-INF目錄下,所以該路徑沒寫錯。但是重定向的原理是讓客戶端再次訪問,而WEB-INF目錄下的檔案不能被客戶端訪問,所以會報404-未找到。
有一些標籤,可以訪問到WEB-INF目錄中的檔案
如果符合要求的情況下也可以在jsp中使用,(原理也都是請求轉發)如:
<a href="javascript:<jsp:forward page='WEB-INF/xxxx.jsp'/>"></a>
<jsp:forward page = "/WEB-INF/jsp/test/test.jsp" />
<jsp:include page="WEB-INF/xxx.jsp">
相關文章
- 關於idea使用SpringMVC框架訪問WEB-INF中的檔案出現404報錯IdeaSpringMVC框架Web
- 對Java Web中WEB-INF目錄的理解以及訪問方法JavaWeb
- 關於python訪問字典的方法Python
- 關於docker無法訪問倉庫的映象代理問題Docker
- [ASP.NET]關於DOT NET的IIS配置LocalHost訪問和127.0.0.1訪問的區別ASP.NETlocalhost127.0.0.1
- 關於 RemoteViews 跨程式資源訪問的勘誤REMView
- postgresql關於訪問檢視需要的許可權SQL
- 關於java記憶體訪問重排序的思考Java記憶體排序
- SpringMVC下關於靜態資源訪問SpringMVC
- 關於效能測試時線上介面訪問比例的整理的問題
- 記一個關於std::unordered_map併發訪問的BUG
- 恆訊科技講解:關於網站訪問慢的檢測方法網站
- RBAC-基於角色的訪問控制
- 微課sql最佳化(10)、關於資料訪問方法SQL
- 關於this指向的問題
- 關於vue專案本地執行以後,輸入本機ip不能訪問的問題Vue
- 資料安全合規需要從基於角色的訪問控制邁向基於屬性的訪問控制
- 有關laravel 上傳圖片訪問404的問題Laravel
- 關於盒模型相關的問題模型
- 關於IPC和PTH使用者許可權問題,psexec拒絕訪問(Access Denied)的原因
- 關於DrawerLayout的小問題
- 關於javascript的this指向問題JavaScript
- 關於 dingo API 的疑問GoAPI
- 關於 Puerts 的效能問題
- Windows原理深入學習系列-訪問控制列表-關於安全描述符的補充Windows
- 基於linux下的selinux強制訪問控制Linux
- 訪問器於構造器的高階使用
- docker網路問題解決辦法“大全”:關於宿主機訪問不了docker容器中web服務,或者容器內訪問不了外網的問題的解決辦法DockerWeb
- 由於GDPR Instapaper暫時關閉了歐洲使用者的訪問許可權訪問許可權
- 關於GAN的靈魂七問
- 關於 Laravel 分頁的問題?Laravel
- [20191129]關於hugepages的問題.txt
- 關於hanlp2.0的問題HanLP
- 關於Xilinx PCIE DMA的問答
- 關於PHP佇列的問題PHP佇列
- 關於安裝nbextensions的問題
- 關於css權值的問題CSS
- 關於影像識別的問題