Spring MVC学习笔记1——Spring MVC 简介

什么是Spring MVC

Spring MVCSpring框架的一个模块,Spring MVCSpring无需通过中间整合层进行整合

Spring MVC是一个基于MVCweb框架。

Spring MVC框架原理

Spring MVC学习笔记1——Spring MVC 简介_第1张图片

  1. 发起请求到前端控制器(DispatcherServlet)。
  2. 前端控制器请求HandlerMapping查找Handler(可以根据xml配置、注解进行查找)。
  3. 处理器映射器HandlerMapping向前端控制器返回Handler
  4. 前端控制器调用处理器适配器去执行Handler
  5. 处理器适配器去执行Handler
  6. Handler执行完成给适配器返回ModelAndView
  7. 处理器适配器向前端控制器返回ModelAndViewModelAndViewSpring MVC框架的一个底层对象,包括ModelView
  8. 前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)。
  9. 视图解析器向前端控制器返回View
  10. 前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域 。
  11. 前端控制器向用户响应结果。

组件

前端控制器DispatcherServlet(不需要程序员开发)

作用:接收请求,响应结果,相当于转发器,中央处理器。
有了DispatcherServlet,减少了其他组件之间的耦合度。

处理器映射器HandlerMapping(不需要程序员开发)

作用:根据请求的url查找Handler

处理器Handler(需要程序员开发)

注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

处理器适配器HandlerAdapter

作用:按照特定规则(HandlerAdapter要求的规则)执行Handler

视图解析器ViewResolver(不需要程序员开发)

作用:进行视图解析,根据逻辑视图名解析成真正的视图(View)。

视图View(需要程序员开发jsp

View是一个接口,实现类支持不同的View类型(jspfreemarkerpdf…)。

开发步骤

  1. 加入jar包。
  2. web.xml中配置DispatcherServlet

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  
  	
	<servlet>
		<servlet-name>springDispatcherServletservlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
		
		
		
		<init-param>
			<param-name>contextConfigLocationparam-name>
			<param-value>classpath:springmvc.xmlparam-value>
		init-param>
		
		
		<load-on-startup>1load-on-startup>
	servlet>
	
	<servlet-mapping>
		<servlet-name>springDispatcherServletservlet-name>
		<url-pattern>/url-pattern>
	servlet-mapping>
  
web-app>
  1. 加入Spring MVC的配置文件。

<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-4.0.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="com.springmvc">context:component-scan>
	
	
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/">property>
		<property name="suffix" value=".jsp">property>
	bean>
	
beans>
  1. 编写处理请求的处理器,并标识为处理器。
@Controller
public class HelloWorld {

	/*
	 * 1.使用@RequestMapping注解来映射请求的URL
	 * 2.返回值会通过视图解析器解析为实际的物理视图,对于InternaResourceViewlResolver视图解析器,会做如下的解析:
	 * 	通过  prefix + returnVal + suffix 这样的方式得到实际的物理视图,然后做转发操作
	 * 	/WEB-INF/views/success.jsp
	 */
	@RequestMapping("/helloworld")
	public String hello() {
		
		System.out.println("hello world");
		return "success";
		
	}
	
}
  1. 编写视图。

你可能感兴趣的:(Spring,MVC)