本章目标
- 使用Spring MVC搭建Web項目
- 注解方式
- 接口方式
Spring MVC概述
- Spring MVC為展現層提供的基于MVC設計理念的優秀Web架構,是目前最主流的MVC架構之一。
- Spring3.0後全面超越了Struts2,稱為最優秀的MVC架構。
- Spring MVC通過一套MVC注解,讓POJO稱為處理請求的控制器,無需實作任何接口。
- 支援REST風格的Web請求。采用了松散耦合可插拔元件結構,比其它MVC架構更具擴充性和靈活性。
搭建Spring MVC環境
- 基于接口方式搭建MVC環境:通過實作Controllor接口實作MVC
- 基于注解方式搭建MVC環境 :在Spring 3.0以後的版本中,使用注解方式極大的簡化了傳統MVC配置的,靈活性和可維護性也得到大大的提高。
推薦使用注解方式。
HelloWolrd
- 步驟:
- 1、導入jar包
- 2、在web.xml中配置DispacherServlet
- 3、加入Spring MVC配置檔案。
- 4、編寫請求處理器,并标示為處理器
- 5、添加視圖,并添加視圖解析器
導入jar包
Spring MVC需要的最核心的jar包
- commons-logging.jar
- spring-aop.jar
- spring-beans.jar
- spring-context.jar
- spring-core.jar
- spring-expression.jar
- spring-web.jar
- spring-webmvc.jar
修改配置檔案
- 在web.xml中配置DispacherServlet,DispacherServlet預設加載/WEB-INF/<servlet-name>-servlet.xml下的Spring配置檔案,可以通過contextConfigLocation更改配置檔案路徑。
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- SpringMVC配置檔案路徑 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 啟動時自動加載配置檔案 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
建立請求處理類
- 添加一個HelloWorld類,使用注解修飾類和方法。
@Controller // 修飾類為一個控制器
public class HelloWorld {
@RequestMapping("/hello") // 修飾方法(或類)的請求路徑
public String hello(){
System.out.println("hello spring mvc");
return "hello";
}
}
Spring MVC配置檔案
- 配置Spring MVC自動掃描包的路徑
<!-- 配置Spring MVC自動掃描的路徑 -->
<context:component-scan base-package="com.znsd.controller" />
- 配置視圖解析器,解析方式為
<!-- 配置視圖解析器 将視圖傳回字元串解析到:/WEB-INF/view/傳回值.jsp 下-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 視圖字首 -->
<property name="prefix" value="/WEB-INF/view/" />
<!-- 視圖後置 -->
<property name="suffix" value=".jsp" />
</bean>
添加視圖
- 在WEB-INF下添加view檔案夾用來存放jsp頁面。
運作結果
- 輸入位址顯示頁面
接口方式實作MVC
- 添加控制器類實作Controllor接口,傳回一個ModelAndView對象。
public class HelloWorld implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception {
System.out.println("HelloWorld");
return new ModelAndView("hello");
}
}
- Spring 配置檔案中添加通路路徑,和映射。
<!-- name:代表通路路徑 class:指定控制器類 -->
<bean name="/helloworld" class="com.znsd.controller.HelloWorld" />
總結
- 注解方式實作MVC
- 接口方式實作MVC