zoukankan      html  css  js  c++  java
  • [刘阳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";
        }
        
    }
  • 相关阅读:
    OAuth 2.0之授权码模式
    Rest和Restful & http
    HTTP1.1协议中文版-RFC2616
    Linux中安装Python2.7
    CvMat、Mat、IplImage之间的转换详解及实例
    ROS Node/Topic/Message/Service的一些问题
    ROS的tf_tree相关
    机器人路径规划(包括行人检测及动态避障总结)(长期更新)
    相关博客链接(长期更新)
    关于视觉里程计以及VI融合的相关研究(长期更新)
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6736619.html
Copyright © 2011-2022 走看看