Spring MVC 入门

Spring MVC优势和第一个入门程序 1、SpringMVC的优势     Spring框架提供了构建Web应用程序的全功能MVC模块——Spring MVC。Spring MVC框架提供了一个DispatcherServlet作用前端控制器来分派请求,同时提供灵活的配置处理程序映射、视图解析、语言环境和主题解析,并支持文件上传。Spring MVC还包含了多种视图技术,例如JSP、Velocity、Tiles、iText和POI 阅读详情

 

 

本人在学习 spring mvc 开始时对以下几个基本概念的理解:

  • 分发器 DispatcherServlet  :  响应请求
  • 控制器 Controller :  控制请求
  • 处理器映射 HandleMapping : 映射请求到处理器
  • 视图解析 ViewResolver : 解析请求到指定的视图

以上概念写的比较简单,要是想理解的更深还是看文档.

下面是这些概念实际的执行顺序:

接下来说明下他们在实际应用中代码的编写:

DispatcherServlet

org.springframework.web.servlet.DispatcherServlet 配置要在 web.xml 中声明

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
  <servlet> 
    <servlet-name>dispatcherServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 

   <!-- 

    DispatcherServlet 默认加载的bean文件是/WEB-INF/(servlet-name)-servlet.xml

    可以通过配置contextConfigLocation来改变加载的文件

   --> 
    <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
  </servlet> 


  <!-- 拦截所有以 do 结尾的请求 --> 
  <servlet-mapping> 
    <servlet-name>dispatcherServlet</servlet-name> 
    <url-pattern>*.do</url-pattern> 
  </servlet-mapping>
</web-app>

在web.xml中声明后就可以来写整个处理过程所需要的其他配置,该配置文件的名字应该符合上面说述的规则

(servlet-name)-servlet.xml,所以文件名是dispatcherServlet-servlet.xml

HandleMapping

 <!--
  定义处理器映射
  将要处理的请求映射到处理器上
 -->
  <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
      <props>
        <prop key="helloWorld.do">helloWorldController</prop> 
      </props> 
    </property> 
  </bean>
   SimpleUrlHandlerMapping将映射的信息存入到mappings中,
   key : DispatcherServlet响应的请求,
   value : 映射的处理器,
   也就是 urlMappin 将请求 helloWorld.do 由处理分配到了下面要配置的 helloWorldController 控制器上

Controller

 <!--
  定义控制器, 继承 AbstractController ,实现 handleRequestInternal 方法

  通过注入来避免硬编码
  显示的信息:helloWorld
  视图名称:viewPage

  除了继承AbstractController以外, Spring还有提供了一些方便的Controller, 可以参考文档来用
 -->
  <bean id="helloWorldController" class="com.mvc.HelloWorldController"> 
    <property name="helloWorld">
      <value>AbstractController --- HelloWorld</value>
    </property> 
    <property name="viewPage">
      <value>/WEB-INF/jsp/index.jsp</value> 
    </property>
  </bean>
  
  到了这Controller要开始做事了, Controller的java代码:
  public class HelloWorldController extends AbstractController{   
    private String helloWorld;
    private String viewPage;  
 
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {

      /*要进行的处理在这执行*/
      Map<String,String> model = new HashMap<String,String>();  
      model.put("helloWorld",getHelloWorld());
 
      /*返回ModelAndView(传入视图名称,处理得到的数据)*/
      return new ModelAndView(getViewPage(),model);    
  }
 
    public String getHelloWorld() {  
      return helloWorld;  
    }  
 
    public void setHelloWorld(String helloWorld) {  
      this.helloWorld = helloWorld;  
    }  
 
    public String getViewPage() {  
      return viewPage;  
    }  
 
    public void setViewPage(String viewPage) {  
      this.viewPage = viewPage;  
    }  
}  

Controller会返回一个ModelAndView并携带视图名,处理得到的数据剩下的事就要交给视图解析器去做了.

ViewResolver

  <!--
   定义视图解析器
   
   UrlBasedViewResolver 允许将视图名直接解析到URL上, 不需要显示的映射定义. 如果你的视图名称直接符合视图资源的
       名字而不需要任意的映射, 就可以使用这个解析器.

   InternalResourceViewResolver 是 UrlBasedViewResolver 的子类, 支持InternalResourceView, JstlView, TitleView
   这个解析器生成的视图的类都可以用setViewClass指定 (相关的内容可查阅文档).
  --> 
  <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass">
      <value>org.springframework.web.servlet.view.InternalResourceView</value> 
    </property>
  </bean>


  <!--   
   因为我用的视图名是直接符合视图资源的名字/WEB-INF/jsp/index.jsp, 所以选用,InternalResourceViewResolver,
   若是选用UrlBasedViewResolver, 注入Controller的视图名因该是"index", 最后请求的视图资源才是/WEB-INF/jsp/index.jsp
  -->
  <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
   <property name="viewClass"><value>org.springframework.web.servlet.view.InternalResourceView</value></property>
   或
   <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property> 
   <property name="prefix"><value>/WEB-INF/jsp/</value></property>
   <property name="suffix"><value>.jsp</value></property>
  </bean>

   最后通过解析器将视图交给RequestDispatcher, RequestDispatcher将请求再传递给/WEB-INF/jsp/index.jsp, 也就是Controller返回的ModelAndView中所携带的视图名.

Spring MVC 入门程序 本文介绍了如何快速地搭建一个简单的 Spring MVC 项目,其中包括创建 Maven 工程、添加 Spring MVC 依赖库、编写控制器类和视图文件、配置 Spring MVC,以及部署和测试整个应用程序。如果你掌握了本文中所提到的技术,你应该能够在不久的将来开始开发属于自己的 Spring MVC 项目。 阅读详情

相关推荐

SAP物料分类账(ML)避坑指南:激活顺序错了怎么办?从CKMSTART到差异分摊的完整流程

本文详细解析SAP物料分类账(ML)的正确激活顺序与配置流程,帮助用户避免常见陷阱如'LKW无科目'、'在制品重估失败'等问题。从CKMSTART到差异分摊的完整流程,涵盖关键配置节点、典型报错分析与应急处理方案,确保产品成本控制(CO-PC)模块的顺利运行。

weixin_42524708的博客 258

SpringMVC全套详解

表示应用程序中的数据和业务逻辑。在Spring MVC中,通常使用POJO(Plain Old Java Object)作为模型对象。通常模型对象负责在数据库中存取数据。负责展示用户界面,通常是HTML页面、JSON响应或其他类型的视觉呈现。视图负责将模型数据渲染,并向用户呈现。接收并处理HTTP请求,并根据请求的内容选择相应的处理方法。控制器负责调度适当的业务逻辑,操作模型数据,并通过相应的视图返回响应结果。

Original0的博客 7956

国产SR8201F以太网PHY芯片调试避坑指南:从机贴失败到杜邦线救场的实战记录

本文详细介绍了国产SR8201F以太网PHY芯片的调试避坑指南,涵盖硬件设计、PCB布局、SMT贴片及软件驱动等关键环节。通过实战案例解析,帮助工程师解决MII/RMII接口配置、电源设计、信号完整性等典型问题,提升以太网通信稳定性与EMC性能。

c6d7e8f9g的博客 1216

2021年全网最全最详细的 SpringMVC面试题精选合集

1. Spring MVC基础 1.1 什么是Spring MVC? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 1.2 Spring MVC的优点有那些? 可以支持各种视图技术,而不仅仅局限于JSP; 与Spring框架集成(如IoC容器、AOP等); 清晰的角色分配: 前端控制器(dispatche

Java烂猪皮 3094

S7-200SMART系列全套接线说明

SMART200接线方法,输入,输出,模拟量,面板,扩展糟等,并且详细说明接线原理。

文都龙哥 1万+

迪文串口屏开发环境搭建全流程:从DGUS Tool到串口联调

串口屏作为嵌入式人机交互的核心组件,通过串口通信实现主控MCU与显示终端的指令交互。其工作原理基于变量地址映射,主控读写VP地址即可驱动屏上控件,兼具低功耗与高稳定性。在工业控制、医疗设备及智能家居面板等场景中,串口屏能显著降低开发门槛与硬件成本。迪文屏凭借DGUS Tool上位机与自定义串口协议,成为主流选择。掌握DGUS Tool版本匹配、串口驱动安装及VP地址规划,是快速搭建开发环境的关键。

weixin_33937499的博客 611

Spring MVC详解(转)

1.1介绍Spring MVC是Spring Framework提供的Web组件,全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架,提供前端路由映射、视图解析等功能Java Web开发者必须要掌握的技术框架1.2MVC是什么MVC是一种软件架构思想,把软件按照模型,视图,控制器来划分Model:模型层,指工程中的JavaBean,用来处理数据JavaBean分成两类:一类称为实体类Bean:专门用来存储业务数据,比如Student,User。

朱塔山的博客 1万+

从稳压管到LDO芯片:一张图看懂线性电源的‘内卷’进化史

本文追溯了从稳压管到LDO芯片的线性电源技术进化历程,详细解析了各阶段的技术突破与局限。重点探讨了现代LDO在超低功耗、高精度控制等方面的创新,并提供了实战选型的黄金法则,帮助工程师在电子设备小型化与低功耗化趋势中做出最优选择。

weixin_42525551的博客 206

SpringMVC(全)

全网最全总结,有不足之处欢迎补充 925850563@qq.com 可以通过图片连接自行查看结果截图

m0_47711130的博客 9487

TPM 2.0实例探索2 —— LUKS磁盘加密(1)

本文对LUKS行了系统介绍

phmatthaus的专栏 1700

YOLO26 实例分割技术:Mask 分支与特征融合

YOLO26实例分割技术研究摘要:本文提出了一种基于YOLO架构的高效实例分割方法,通过创新设计Mask分支和特征融合策略解决像素级分割精度、多尺度目标处理等挑战。系统采用共享Backbone提取特征,检测分支输出边界框和类别,Mask分支生成原型Mask和组合系数。核心创新包括:1)原型Mask生成与线性组合机制;2)检测与Mask特征共享;3)结合BCE和Dice的多任务损失函数。实验表明该方法在保持实时性的同时实现了高质量分割,为轻量级实例分割提供了新思路。

一键难忘的博客 250

SpringMVC详解

SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分。简化开发,减少出错,方便组内开发人员之间的配合。 他通过一套注解,让一个简单的Java类成为处理请求的控制器,而无需实现任何接口。同时它还支持Restful编程风格的请求。

互联网底层民工的博客 1万+

芒果YOLO11改进12:即插即用 | 独家原创改进最新PWConv核心结构|来自最新CVPR2023顶会,

即插即用 | 独家原创改进最新PWConv核心结构|来自最新CVPR2023顶会,

包括YOLOv5、YOLOv7、YOLOv8等模型改进 566

【Spring】Spring MVC入门(一)

在前面,我们了解了什么是Spring,那么本篇我们就来认识一种在网站开发中常用的框架———Spring Web MVC。我们来看下官方的解释:Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。它的正式名称为”Spring Web MVC”来自于其源模块的名称(Spring-webmvc),但通常被称为“Spring MVC”。

zhyhgx的博客 1752

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Spring MVC入门

本内容采用最新SpringBoot3框架版本,MVC是一种编程思想,它将应用分为模型(Model)、视图(View)、控制器(Controller)三个层次,这三部分以最低的耦合进行协同工作,从而提高应用的可扩展性及可维护性。模型层主要包括实体类Bean(存储业务数据的类,如Student)和处理业务逻辑的Bean(如Service、Dao)。用户与应用程序交 互的、展示数据的界面,例如工程中的html页面。工程中的servl et,接收视图层发出的请求,将请求转给模型,响应用户请求渲染视图。

分享各类实战项目,提供源码与教程,供大家学习参考。 1391

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【Spring篇】初始Spring MVC框架之Spring MVC入门程序编写

Spring MVC是一个基于Java的实现了MVC(Model-View-Controller)设计模式的Web框架。它是Spring框架的一部分,专门用于构建Web应用程序。Spring MVC通过将应用程序分离成模型(Model)、视图(View)和控制器(Controller)三个核心组件,来帮助开发者构建可维护、可测试的Web应用程序。

m0_74202856的博客 3893

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Spring Web MVC入门

RequestMapping 是Spring Web MVC应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的 路由映射的.路由映射:当⽤⼾访问⼀个URL时,将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射.@RestController 是 Spring MVC 框架中的一个注解,它是一个复合注解,等价于在类上同时使用 @Controller 和 @ResponseBody。

YQY18289570091的博客 1317

Spring_MVC 快速入门指南

SpringMvc快速入门案例

2301_77129242的博客 1472

Spring MVC 配置详解与入门案例

Spring MVC 配置

2301_81096101的博客 1070

Spring Web MVC 入门

Spring Web MVC、@RequestMapping、GET/POST、JSON、@PathVariable、@RequestPart、Cookie/Session、@RestController、@Controller、HttpServletResponse、案例(加法计算器、留言板、图书管理系统)、Lombok、EditStarte、Bootstrap、应用分层

Yuan_o_的博客 1858

Spring MVC MVC介绍和入门案例

M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为数据承载Bean:专门存储业务数据的,如 Student、User 等一类称为业务处理Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器MVC的工作流程。

jyx_boy的博客 954

spring mvc入门程序

一、导包 1、spirng四大核心包+spring-web、spring-webmvc和spring-aop Spring-beans-XXXX.RELEASE.jar (xxxx为版本号) Spring-context-XXXX.RELEASE.jar Spring-core-XXXX.RELEASE.jar Spring-expression-XXXX.RELEASE.jar Spring...

tomorrow_shoe的博客 558

Spring Web MVC————入门(1)

Spring Web MVC是基于servlet API构建的原始框架,servlet是一种实现动态界面技术,反正Spring Web MVC就是一套Web开发框架,我们可以简称为Spring MVC;model view controller的缩写,是一种软件架构设计模式,分别为模型,视图,控制器,模型:就是我们的程序,怎么来处理业务逻辑,怎么处理数据视图:指应用程序专门用来与浏览器交互的部分控制器:选择处理模型,选择视图。

2301_79083481的博客 1627

Spring MVC【入门】就这一篇!

https://www.jianshu.com/p/91a2d0a1e45a

ftfy123的博客 157
上一篇: JAVASCRIPT Array 的巧用
下一篇: Spring MVC 入门 @ MultiActionController
lhminjava
博客等级 码龄21年 15粉丝 6原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值