springMVC處理流程如下:
通過配置DispacherServlet攔截指定的url,讓後經HanddlerMapping來決定調用我自定義的Controller,在Controller中經過業務處理後,返回ModelAndView,包含數據模型和視圖,經過ViewResovler視圖解析器解析後,返回相應的結果。
實例如下:
①創建一個web工程,配置服務器,導入相關的jar包。
②配置web.xml文件。如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>指定配置文件路徑</description>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<!-- 服務器啓動時創建該servlet實例 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>testController.do</welcome-file>
</welcome-file-list>
</web-app>
Dispatcherservlet攔截以.do結尾的url,將welcome-file改成了testController.do,讓服務器啓動時,默認訪問。
③編寫Controller,如下:
//實現Controller接口或者繼承AbstractController
public class TestController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("hahaah");
return new ModelAndView("hello");
}
}
④配置applicationContext.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
classpath:/org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
classpath:/org/springframework/context/config/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
classpath:/org/springframework/web/servlet/config/spring-mvc-3.2.xsd ">
<!-- 根據我們請求的不同來選擇調用相對應的controller -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="testController.do">testController</prop>
</props>
</property>
</bean>
<bean id="testController" class="com.zhongqian.controller.TestController"></bean>
<!-- 視圖解析器,用來指定返回後的頁面 .如返回aa,則對於的頁面爲/WEB-INF/jsp/aa.jsp -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 返回的視圖模型數據需要經過jstl來處理 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
⑤創建hello.jsp頁面
項目結構如下:
運行項目效果:控制檯打印hahaah
頁面顯示: