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";
        }
        
    }
  • 相关阅读:
    use paramiko to connect remote server and execute command
    protect golang source code
    adjust jedi vim to python2 and python3
    install vim plugin local file offline
    add swap file if you only have 1G RAM
    datatables hyperlink in td
    django rest framework custom json format
    【JAVA基础】网络编程
    【JAVA基础】多线程
    【JAVA基础】String类的概述和使用
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6736619.html
Copyright © 2011-2022 走看看