今天开始我们对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";
} }

[刘阳Java]_Spring MVC入门_第1讲的更多相关文章

  1. [刘阳Java]_Spring AOP入门_第7讲

    AOP技术个人认为是能够完善(改善)面向对象编程OOP.为什么这么说,我们得先从AOP的概念说起,然后通过一段简单的例子加以佐证.这样子大家就可以慢慢地了解AOP 1. AOP概念 AOP为Aspec ...

  2. [刘阳Java]_Spring IoC原理_第2讲

    Spring IoC(DI)是Spring框架的核心,所有对象的生命周期都是由它们来管理.对于弄懂Spring IOC是相当关键,往往我们第一次接触Spring IOC大家都是一头雾水.当然我们这篇文 ...

  3. [刘阳Java]_JVM工作流程_第4讲

    程序员写好一段Java源程序-->编译-->字节码-->JVM-->硬件平台(操作系统)

  4. [刘阳Java]_Java环境搭建_第2讲

    1.为什么搭建Java的环境 Java的程序语言不能独立在操作系统上运行 Java程序需要一个JVM(Java虚拟机)才能将程序员写好的Java程序运行在操作系统 Java程序的跨平台(Mac, Li ...

  5. [刘阳Java]_eayui-searchbox搜索组件_第6讲

    EasyUI中搜索框也是常用的基本组件,可以用到条件搜索中 <!DOCTYPE html> <html> <head> <meta charset=" ...

  6. [刘阳Java]_eayui-pagination分页组件_第5讲

    分页组件也是很基本的应用,这里我只给出一段简单的代码 关键注意一点:分页组件可以在上面添加buttons按钮,或者自定义分页组件的外观.这些内容需要自行的查看EasyUI的API文档 <!DOC ...

  7. [刘阳Java]_easyui-draggable拖动组件_第4讲

    easyui-draggable的拖动组件还是比较好用的,它能够快速地实现网页中元素的拖动效果 实现easyui-draggable拖动组件有两种方式:纯HTML方式和JS方式 纯HTML方式实现拖动 ...

  8. [刘阳Java]_easyui-panel组件入门级_第3讲

    EasyUI中的panel组件在前面一节中我们简单告诉了大家代码如何写.这一节我们会从panel的入门级开始讲起走,重点包括它的事件监听,属性tool介绍 1. 事件监听-通过data-options ...

  9. [刘阳Java]_TortoiseSVN基础应用_第1讲

    TortoiseSVN是一个免费的SVN客户端,非常好用.这里我们介绍一下TortoiseSVN基础应用. 下面的内容是转载博客园的某兄弟写的,个人觉得很不错.所以尊重转载的这篇文章,必须要给出这篇博 ...

  10. [刘阳Java]_EasyUI环境搭建_第2讲

    在EasyUI的第1讲中我们介绍了学习EasyUI能够做什么,这次我们得快速搭建一个EasyUI环境,来测试一下它的运行效果 1.jQuery EasyUI环境搭建 <script type=& ...

随机推荐

  1. SciTech-Mathematics-数学专业笔记总结

    数学专业笔记总结: https://gitee.com/duanjinyi/real-number-set-and-function

  2. C#/.NET/.NET Core技术前沿周刊 | 第 47 期(2025年7.14-7.20)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  3. unity纯净版下载地址

    真的服了,unity居然做成这个鸟样,夹带广告,一天一激活... 民间整理的纯净版下载地址 https://unityitellyou.github.io/#/

  4. 厌倦样板代码?用 Rust 过程宏自动生成!

    Rust 的宏系统 Rust 的宏系统提供了一种在编译期生成代码的机制,用于减少重复代码.自动实现 trait.扩展语言语法等用途.宏不通过常规的函数调用方式运行,而是在编译过程中由编译器对源代码进行 ...

  5. Docker系列之Elasticsearch安装教程

    @ 目录 1.什么Elasticsearch? 2.安装elasticsearch 3.目录结构 4.常用命令 5.插件安装 6.elasticsearch-head 1.什么Elasticsearc ...

  6. Spark UDF/UDAF(JAVA)

    UDF(User-Defined-Function) UDF是用于处理一行数据的,接受一行输入产生一个输出,类似与map()算子, UDAF(User- Defined Aggregation Fun ...

  7. mysql + pycharm

    目录 1.MYSQL下载安装 1.1 下载 1.2 解压安装 1.2.0 将上述文件压缩包解压后,进入解压路径,使用管理员权限打开shell.(shift + 鼠标右键) 1.2.1 在控制台窗口输入 ...

  8. Web 网页直接打开 Windows 软件

    日常开发中,经常会遇到需要在浏览器就可以直接引导用户打开软件的功能,例如国内的迅雷.QQ 一般桌面软件分不同的操作系统,如 Windows.Linux.MacOS 效果如下: 以 Windows 为例 ...

  9. Asp.Net Core WebApi6解决跨域问题

    public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { option ...

  10. 大模型官网API说明文档

    chatGPT API说明 OpenAI开发系列(六):Completions模型的工作原理及应用实例(开发多轮对话机器人) LangChain langchain官网 Langchain-Chatc ...