框架學習-SpringMVC原理及搭建


學習了Spring MVC 后感覺Servlet+jsp,,弱爆了,,不是一個量級,springMVC灰常靈活,使用起來相當方便。

一。概念介紹

MVC概念鏈接

SpringMVC 處理業務流程圖:
這里寫圖片描述



(1)DespatcherServlet(需要在web.xml中配置)
類似醫院的分診台,具有對請求進行一個分發及返回相應頁面操作的功能。

(2)HandlerMapping(根據注解@RequestMapping,對應Controller)
存儲 控制器與請求 鏈接的映射關系,,將響應請求與對應的Controller。

(3)HandlerInterceptor(需要在SpringMVC配置文件中配置攔截器,可指定攔截特定URL或者全局攔截)
請求攔截器,,對特殊請求(或者全部請求)進行攔截操作,攔截中可獲取Request對象對請求參數進行操作,
攔截器與過濾器不同

(4)Controller
使用@RequestMapping注解的函數,一個Controller中可有多個子Controller。需要編寫業務請求處理邏輯。

(5)HandlerAdapter/Handler(看名字就知道是適配器模式)
適配器模式,是多到一的轉換(適配器模式詳解

(6)ModelAndView(類似適配器模式吧)
SpringMVC會將Controller處理結果轉化為統一的ModelAndView進行處理。

(7)ViewResolve(需要在SpringMVC中進行配置)
視圖處理器,將ModleAndView轉化為對應的視圖,,

(8)View
視圖,顯示作用,,可使用Jsp,Html,模板語言等等。



二。搭建

框架搭建不使用Maven,那怎么行,(maven詳解

新建一個項目使用webapp模板
這里寫圖片描述

pom.xml核心文件,強大的maven只需要這一句就能將SpringMVC的jar包全部導入,(springMVC依賴於Spring,spring的包也會自動導入

      <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-webmvc.version}</version>
</dependency>

spring-mvc.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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"
>


<!--進行報掃描-->
<context:component-scan base-package="xatu.zsl.**"></context:component-scan>
<!--開啟spring MVC注解支持-->
<mvc:annotation-driven> </mvc:annotation-driven>

<!--配置viewResolver-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/student/poststudent"/>
<bean class="xatu.zsl.interceptor.DemoInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>

</beans>

web.xml

<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
>


<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.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>
</web-app>

通過上面三個xml配置文件,就將,DispatcherServlet,viewResolver,及HandlerInterceptor,配置到位,現在只需要,編寫Contorller,就可以開心的玩SpringMVC了

@Controller//需要保證,類能夠被spring容器加載
@RequestMapping("student") //設置映射
public class StudentController {

@RequestMapping("/showstudent")//設置映射
public String testStudent() {
return "show";
}

Controller中的方法返回一個字符串,會去ViewResolver中找前綴和后綴進行拼接查找,,
return “show”;

會去找/WEB-INF/views/ show .jsp


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com