webapp(網站根目錄),其下建 WEB-INF(安全目錄,瀏覽器不可直接訪問)。WEB-INF 下建立 web.xml(部署描述檔),從 Tomcat conf/web.xml 複製骨架,設定編碼 UTF-8。WEB-INF 下建 jsp 資料夾放視圖,lib 放 JAR 包。spring-framework-4.x.x.RELEASE-dist.zip。libs/ 目錄下所有 JAR 複製至專案 WEB-INF/lib。<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup> <!-- 啟動時載入,優先級 1 -->
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern> <!-- 所有 .do 請求進入 Spring -->
</servlet-mapping>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
WEB-INF/spring-servlet.xml(servlet-name + -servlet.xml),DispatcherServlet 啟動時自動載入。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/index.do">IndexAction</prop>
</props>
</property>
</bean>
<bean id="IndexAction" class="com.myweb.IndexAction">
<property name="view" value="index"/> <!-- 對應 /WEB-INF/jsp/index.jsp -->
</bean>
package com.myweb;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class IndexAction implements Controller {
private String view;
public void setView(String view) { this.view = view; }
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
return new ModelAndView(view); // 轉發至 index.jsp
}
}
除 Spring 核心 JAR,尚需 commons-logging、servlet-api、jsp-api 等,放入 WEB-INF/lib 並加入 Build Path。
https://localhost:8080/專案名/index.do。index.jsp 內容,環境搭建成功。@Controller、@RequestMapping 取代 XML 映射。<mvc:annotation-driven/> 簡化配置。