關於springMVC框架訪問web-inf下的jsp文件


問題:springMVC框架訪問web-inf下的jsp文件,具體如下: 使用springMVC,一般都會使用springMVC的視圖解析器,大概會這樣配置

 

<property name="prefix" value="/WEB-INF/jsp/"></property>
		<property name="suffix" value=".jsp"></property>

 

當我的control返回

return new ModelAndView("admin/index");   

 

實際訪問的就是/WEB-INF/jsp/admin/index.jsp這個頁面,那么放在web-inf下只能服務端可以訪問保證了安全性。如果index.jsp中有這樣一個代碼

 

 <frame src="left.jsp"/> 

,top.jsp和index.jsp都在admin目錄下,這樣訪問index就會404.

此時糾結了:1、top.jsp如果一定要和index.jsp在同目錄下,就要加個control,為一個連接加個control太不值。2、如果不在同一目錄下放到webRoot根目錄下,index.jsp和top.jsp就不在同一個地方,維護時候不太方便,3、另一種情況springMVC視圖解析器路徑修改為<property name="prefix" value="/jsp/"></property>即在項目根目錄下,這樣客戶端也可直接訪問此目錄,沒有安全性可言,到底該怎么做呢?

 

通過互聯網整理獲得以下解決方法:

 

=================1樓=====================

<mvc:view-controller path="/left" view-name="left"/>

=================2樓=====================

我的做法是 —— 還得加控制器。思路是下面這樣

 

[list=1]

  • 弄個專門放公開的jsp的目錄,比如/WEB-INF/jsp/public
  • 弄個control,spring也有個只是redirect的來着。或者自己寫個。里面固定轉向上面的目錄。當然可以用參數配置等靈活點實現。
<frame src="left.jsp"/> 

變成

 

<frame src="redirect.do?page=left.jsp"/> 

類似這樣。

[/list]

 

這么做的目的,基本上就是回答你的問題。

 

1. jsp統一放在一起 —— /WEB-INF/jsp/。

2. 用一個且只用一個控制器控制需要公開的jsp。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM