[刘阳Java]_Spring MVC入门_第1讲

今天开始我们对Spring MVC框架的入门介绍,如果说是基础入门我们会先给大家介绍如下几个技术内容

  • 理解Spring MVC工作流程
  • 快速搭建Spring MVC
  • 详细介绍@RequestMapping的用法
  • Spring MVC如何发送JSON数据
  • 如何整合Spring和Spring MVC

上面内容我个人认为是基础性入门介绍,所以我们会分几讲内容来进行

1. Spring MVC工作原理

  • Spring MVC框架围绕DispatcherServlet这个核心控制器来开展工作
  • DispatcherServlet它负责拦截请求并将其分配给相应的处理器
  • 整个Spring MVC的工作流程如下
    • 客户端发送HTTP请求,Web服务器接收请求并查找配置在web.xml中的DispatcherServlet
    • DispatcherServlet接收请求后,将根据请求的信息以及HandlerMapping的配置找到处理请求的处理器
    • DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装
    • 处理器完成业务逻辑处理后返回一个ModelAndView给DispatcherServlet,ModelAndView包含视图逻辑名和模型数据信息
    • DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作
    • 得到真实的视图View对象,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染

2. 快速搭建SpringMVC开发环境

  • 导入SpringMVC相关的jar包

  • 在web.xml文件中配置SpringMVC的核心控制器,DispatcherServlet
<?xml version="1.0" encoding="UTF-8"?>
<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">
  <display-name>springmvc</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
      <servlet-name>spmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:com/gxa/spmvc/config/springmvc-web.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
      <servlet-name>spmvc</servlet-name>
      <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

注意上述代码有几个关键点:

(1)DispatcherServlet虽然是SpringMVC框架中核心控制器,但是它在web.xml还是需要<servlet.../>来进行配置

(2)DispatcherServlet需要在web容器启动的时候加载基于SpringMVC的配置文件所以这里还需添加<init-param>来指出SpringMVC配置文件的路径

  • 创建一个SpringMVC的配置文件,此配置文件主要添加SpringMVC框架所持有的功能。如:视图解析,拦截器,模型驱动等相关功能。单从这一节内容我们只配置一个解析JSP的视图解析器InternalResourceViewResolver
<?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
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    
    <context:component-scan base-package="com.gxa.spmvc.controller"></context:component-scan>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/" p:suffix=".jsp"></bean>

</beans>
  •  最后创建控制器来测试SpringMVC框架是否可以运行
package com.gxa.spmvc.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.gxa.spmvc.entity.Student;

/**
 * SpringMVC的控制器(业务控制器)
 * 定义的方法就是一个请求处理的方法
 * @author caleb
 *
 */
@Controller
public class TestController {
    
    /**
     * @RequestMapping主要是定义用户的url请求
     * @RequestMapping("/m01"), http://localhost:8080/springmvc/m01.do
     * 返回指就是一个逻辑视图名, 它遵循springmvc-web.xml视图解析器去寻找物理视图名(m01.jsp)
     * @return
     */
    @RequestMapping("/m01")
    public String m01() {
        return "m01";
    }
    
}
原文地址:https://www.cnblogs.com/liuyangjava/p/6736619.html