一、問題描述
這里所謂的默認首頁,是指在訪問項目根目錄時(如 http://localhost:8080/zhx-web/ )展示的頁面,通過在web.xml里配置 <welcome-file-list> 實現。分靜態頁面和動態頁面兩種:
二、靜態頁面
對於靜態頁面,只需要在web.xml里添加如下內容即可。這時訪問上述鏈接時得到的就是download.jsp頁面的靜態內容
<welcome-file-list> <welcome-file>/WEB-INF/views/download.jsp</welcome-file> </welcome-file-list>
三、動態頁面
對於Servlet:
如果某個Servlet的映射路徑僅僅為一個正斜杠(/),那么這個Servlet就成為當前Web應用程序的缺省Servlet。
凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它們的訪問請求都將交給缺省Servlet處理,也就是說,缺省Servlet用於處理所有其他Servlet都不處理的訪問請求。
對於動態頁面(如展示訪問servlet后返回數據的頁面),可做如下配置,這時訪問上述鏈接時就相當於是訪問download這個servlet。
1 <servlet> 2 <servlet-name>springmvc</servlet-name> /* a */ 3 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 4 <init-param> 5 <param-name>contextConfigLocation</param-name> 6 <param-value>classpath:spring/springmvc-servlet.xml</param-value> 7 </init-param> 8 <load-on-startup>1</load-on-startup> 9 </servlet> 10 <servlet-mapping> 11 <servlet-name>springmvc</servlet-name> 12 <url-pattern>/</url-pattern> 13 </servlet-mapping> 14 <servlet-mapping> 15 <servlet-name>springmvc</servlet-name> /* b */ 16 <url-pattern>/download</url-pattern> /* c */ 17 </servlet-mapping> 18 <welcome-file-list> 19 <welcome-file>download</welcome-file> /* d */ 20 </welcome-file-list>
上面的配置見名知意:
1、a處定義了一個名為springmvc的servlet
2、b、c 進行servlet映射配置,表示在訪問/download這個路徑時交由springmvc這個servlet處理
2、d處表示讓用戶在訪問上述鏈接時默認按訪問/download這個路徑處理,即 http://localhost:8080/zhx-web/download
3、此外,在工程中必須有Controller匹配"download"並進行處理(對Spring MVC而言,其他類似)。如
@RequestMapping(value = "/download", method = RequestMethod.GET, produces = "text/html;charset=UTF-8") public String downloadApk(HttpServletRequest request, HttpServletResponse response, ModelMap model) { List<HashMap<String, String>> res = utilService.getApksInfo(); model.addAttribute("apk", res); model.addAttribute("apkNum", res.size()); return "download"; }