SSH專案與SSM專案的進入首頁的方法
SSH專案中:
jsp頁面一般都是存放在WEB-INF下面的目錄下,這樣我們就不能直接訪問到這些jsp頁面了,保證了頁面的安全性。
在struts的管理中,是利用action來實現頁面的跳轉,進入index.jsp即頁面的首頁,我們採用的方法是:
(1)在WEB-INF的這樣目錄下面建立一個index.jsp頁面,頁面中加入一句話,用來中轉到專案中的首頁:
<jsp:forward page="專案中的jsp頁面的路徑">,比如:WEB-INF/jsp/index.jsp
(2)在web.xml中有個檔案是:
<welcome-file> index.jsp</welcome-file>
有了這句話,就可以在瀏覽器的位址列進入到這個檔案。
http://localhost:8080/index.jsp
進入到首頁。
struts是採用的過濾器的方式,所以在web.xml的<url-pattern></url-patter>中可以使用/*的方式來訪問路徑。也可以採用.do或者.action的方式。
但是SpringMVC就不能使用/*的方式來訪問。
SSM專案中進入首頁的方法:
方法一:在web.xml中使用.action或者.do或者.html的方式來訪問網頁的時候。
此時一般將js,css,images這些靜態資源放在WEB_ROOT下面,如果放在web-inf下面是訪問不到的。
當採用上面方式的訪問的時候,靜態資源SpringMVC會自動解析這些靜態資源。
如果想在位址列中想直接輸入:http://localhost:8080這種方式直接進入首頁的話,有兩種方法:
舉個,do的形式。
(1)
第一步:修改WEB.XML中的<welcome_list>index.do</welcome_list>
第二步: @RequestMapping(“/index”)採用此方式返回邏輯檢視index
這種方式可以直接輸入地址訪問。
(2)第二種方式就是在web_root下面建立一個index.jsp頁面,然後使用,跳轉的方式跳到專案本身的index.jsp中。
.html或者.action使用方法同理。
後期補充:當用戶訪問一個系統的時候,我們往往需要進行使用者的攔截驗證操作,即使用者登入許可權的控制。這個時候我們需要使用到攔截器。
使用者請求到DispatherServlet中,DispatherServlet呼叫HandlerMapping查詢Handler,HandlerMapping返回一個攔截的鏈兒(多個攔截),springmvc中的攔截器是通過HandlerMapping發起的。
所以這個時候設定進入首頁的方式也可以是:在web_root下面建立一個index.jsp頁面:
在loginController層寫一個跳轉的頁面:
這裡的first是首頁的邏輯檢視名。在web-inf/jsp/first.jsp
但是如果設定了攔截,因為我們這裡設定的是.action的形式,所以得這樣設定訪問。
否則url無法攔截,因為我們在資料庫中url都是.action的形式。
在企業開發,使用攔截器實現使用者認證(使用者登陸後進行身份校驗攔截),使用者許可權攔截。
當在SSM專案中,web.xml中使用/的方式訪問網頁的時候,此時,靜態資源無論放在web-root下面還是web-inf下面,都需要配置資源對映。
進入首頁此時比較簡單:下面方法即可
我們需要寫一個controller來控制頁面的跳轉:
@Controller public class PageController { //開啟首頁 @RequestMapping("/") public String pageIndex(){ return "index"; }
}
(2)springMVC的配置檔案中的配置
<!-- 利用這個來進行配置註解對映器和註解介面卡 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 配置jsp試圖解析器,配置試圖解析器的字首和字尾,程式中不用指定字首和字尾 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
(3)這裡配置訪問檔案的字首和字尾,比如這裡的返回值是index,加上字首和字尾,訪問路徑是“/”即 根路徑,這樣就可以訪問到index.jsp了。
這個src的路徑就是根路徑,訪問這裡面的檔案就是在瀏覽器輸入:
http://localhost 8080 然後下面訪問的檔名稱。這裡的index我們在springMVC中都配置了,所以直接輸入http://localhost 8080
就可以訪問到。
總結:
在SSM專案中:
所以使用.do,.action,.html的時候,在@RequestMapping中必須使用/+index進入首頁。此時不能忘記在web.xml的<welcome_file>中新增index.action或者index.do的訪問
當使用/的時候,可以使用/進入首頁。但是此時不能忘記進行靜態資源的對映。
另外.html的方式是偽靜態化頁面,便於seo進行搜尋,因為搜尋引擎是比較喜歡html靜態頁面的,利用偽靜態化可以便於搜尋引擎收錄。
偽靜態化直接在web.xml的訪問頁面訪問直接設定*.html的訪問方式即可,用法跟*.do或者*.action的方式一樣。