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的方式一樣。