Spring MVC 起步

【Spring MVC】这一篇,带你从入门到进阶(附 Restful) Spring MVC教学详解,从入门到进阶! 阅读详情

        Spring MVC 是Spring的Web框架和Spring具有完美的契合,Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现。

一:Spring MVC的处理请求的流程

1:用户通过浏览器发送请求(1),Spring MVC所有的请求都会先到达前端控制器DispatcherServlet,它本身不做任何事,相当于起到了一个中央调配的作用。(前端控制器是常用的web应用程序模式)

2:DispatcherServlet根据HandlerMapping处理器映射器来找到具体的处理器(2,3),处理器映射会根据URL所携带的信息进行决策。

3:处理器完成逻辑处理之后将请求连同模型和视图名发送给DispatcherServlet(4,5,6,7),这样可以做到处理器和特定视图解耦的作用。

4:DispatcherServlet使用视图解析器(ViewResolver)将逻辑视图名匹配为一个特定的视图实现(不仅仅局限于JSP)(8,9)。

5:DispatcherServlet最后是视图的实现,在这里它交付模型数据,请求任务也差不多完成了,视图使用模型数据渲染输出,响应给客户端(8,9,10,11)。

二:使用注解的方式搭建Spring MVC

 

1:配置DispatcherServlet

package spittr.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class SpittrWepAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    //getRootConfigClasses(),返回的带有@Configuration注解的类将会用来配置ContextLoaderListener创建的应用上下文中的bean。
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{RootConfig.class};
    }
    //getServletConfigClasses(),返回的是带有@Configuration注解的类将会用来定义DispatcherServlet应用上下文的bean。
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }
    //它会将一个或多个路径映射到DispatcherServlet上
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

AbstractAnnotationConfigDispatcherServletInitializer实现了WebApplicationInitializer接口会自动配置DispatcherServlet和Spring应用上下文。

2:对AbstractAnnotationConfigDispatcherServletInitializer进行解析

Spring 3.0环境,容器会在类路径中查找实现了javax.servlet.ServletContainerInitializer接口的类,如果发现就用它来配置 Servlet容器。Spring提供了它的实现类SpringServletContainerInitializer,这个类查找实现WebApplicationInitializer接口的类并将配置任务交给它们完成,Spring 3.2 提供了一个便利的WebApplicationInitializer实现类 AbstractAnnotationConfigDispatcherServletInitializer,因此容器会自动发现它,并用它来配置Servlet上下文。

上图实现的三个方法:

(1):getServletMappings(),它会将一个或多个路径映射到DispatcherServlet上。

(2):getRootConfigClasses(),返回的带有@Configuration注解的类将会用来配置ContextLoaderListener创建的应用上下文中的bean。

(3):getServletConfigClasses(),返回的是带有@Configuration注解的类将会用来定义DispatcherServlet应用上下文的bean。

3:ContextLoaderListener和DispatcherServlet详解

DispatcherServlet启动时会创建Spring应用上下文,并加载配置文件或配置类中所声明的bean。实际上我们希望DispatcherServlet加载包含web组件的bean,如控制器,视图解析器以及处理器映射器等,而ContextLoaderListener加载应用中的其它bean,通常是驱动应用后端的中间件和数据层组件。

4:配置WebConfig

package spittr.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan("spittr.config")
public class WebConfig extends WebMvcConfigurerAdapter {
    //配置静态资源的处理,configurer.enable()要求DispatcherServlet对静态资源的请求转发到Servlet容器默认的Servlet上,而不是使用DispatcherServlet本身处理
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
    //配置JSP视图解析器,Spring自带了13个视图解析器
    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resourceViewResolver = new InternalResourceViewResolver();
        resourceViewResolver.setPrefix("/WEB-INF/views/");
        resourceViewResolver.setSuffix(".jsp");
        resourceViewResolver.setExposeContextBeansAsAttributes(true);
        return resourceViewResolver;
    }

}

5:配置RootConfig

package spittr.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;


@Configuration
@ComponentScan(basePackages = {"spittr"},
excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ANNOTATION,value = EnableWebMvc.class)
})
public class RootConfig {
}

至此一个简单的Spring MVC已配置完成,下面要做的是配置Controller,及其后的业务逻辑。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

openMVS ---dense point cloud(代码理解) openMVS ---dense point cloud(代码理解)0 代码实现原理1 代码实现步骤1.1 参数传递1.2 loading .mvs数据1.3 稠密重建1.3.0 相关变量及概念1.3.1 ComputeDepthMaps(data) --计算多张深度图1.3.1.1. pre1.3.1.2 为每一张depth map Select view(s) !!!1.3.1.2.1 N neighbors --- global score + filter1.3.1.2.2 MRF ---- t 阅读详情

相关推荐

微前端实战:MicroApp内存泄漏优化策略与性能调优

本文分享了在大型后台管理系统微前端化过程中,使用MicroApp框架时遇到的内存泄漏实战问题与优化策略。通过深入分析沙箱机制,提出动态加载、精准卸载、沙箱配置优化及第三方库补丁等核心方案,并结合Vue/React子应用专项检查清单,有效解决了内存占用飙升问题,为微前端架构的性能调优提供了系统性解决方案。

weixin_29014939的博客 284

SpringMVC全套详解

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

Original0的博客 7956

Crossformer实战:从零开始搭建多变量时间序列预测模型(附ETTh1数据集调参指南)

本文提供了从零开始搭建Crossformer多变量时间序列预测模型的实战指南,并附有详细的ETTh1数据集调参攻略。文章深入解析了Crossformer的核心设计,重点探讨了seg_len和win_size等关键参数对模型性能的影响,并分享了环境配置、训练调试及常见问题的解决方案,帮助开发者高效应用这一前沿深度学习模型。

weixin_29281915的博客 325

SpingMVC详解【重点】

1.1 SpringMVC概述 Spring MVC是Spring框架的一个模块,Spring MVC为Spring提供的一个强大而灵活的基于mvc的web框架,属于表现层的框架。 1.2 MVC架构 M 即 Model(模型层),主要负责出来业务逻辑以及数据库的交互 V 即 View(视图层),主要用于显示数据和提交表单 C 即 Controller(控制器),主要是接收请求,调用 Model 处理请求,并控制请求转发三层架构与 MVC 的联系: 分层的目的是解耦合,按职责划分层次,易于扩展应用,提高

ᶻᶻᶻ 枕星河的博客 3283

深度解析大语言模型中的词向量

​ 在学习完语言模型中的编码器与解码器知识后,让我们继续深入学习大语言模型中一个非常关键的技术:词向量表示,以及如何通过Transformer模型实现对next token的预测。 ​

产品老A,8年互联网大厂AIPM,专注探索新型人机交互 3285

告别PXE!用iPXE在CentOS 8.5上搭建一个能同时装Win11和Linux的万能网络启动盘

本文详细介绍了如何在CentOS 8.5上使用iPXE搭建支持Windows 11和Linux双系统部署的全能网络启动盘。通过对比传统PXE的局限性,展示了iPXE在HTTP协议支持、多架构适配和智能脚本方面的优势,提供从环境准备、服务配置到智能菜单开发的完整解决方案,显著提升系统部署效率。

weixin_29278805的博客 268

SpringMVC(看这一篇就够了)

MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分:Model(模型):指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中,JavaBean对象,业务模型等都属于Model。View(视图):用于展示模型中的数据的,一般为jsp或html文件。Controller(控制器):是应用程序中处理用户交互的部分。接受视图提出的请求,将数据交给模型处理,并将处理后的结果交给视图显示。 SpringMVC是一个基于MVC

m0_74436895的博客 3万+

LabVIEW通过S7协议直连西门子S7-1200读写DB块全攻略

在工业自动化上位机开发中,PLC数据交互始终是现场调试的关键环节。西门子S7-1200作为常见控制器,其DB共享数据块承载着设备状态与工艺参数。理解S7协议基于TCP 102端口的请求/响应机制,以及标准DB与优化块访问、字节顺序(大端模式)等原理,是打通通信链路的基础。相比OPC或Modbus TCP,原生S7协议直连具有配置简单、读写粒度精确到字节/位、响应及时的优势,非常适合单台上位机监控与参数下发场景。借助Snap7等开源库,LabVIEW可通过CLF节点调用ConnectTo、ReadArea、W

weixin_29166013的博客 255

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万+

【ADCU详解】PMIC电源管理集成电路详解

自动驾驶域控制器(ADCU)中的电源管理集成电路(PMIC)是高度集成的关键部件,负责为计算核心、传感器等提供高效稳定的多路电源。其核心特点包括:符合车规AEC-Q100标准、支持功能安全ASIL等级、精确的时序控制及强抗干扰能力。PMIC由开关稳压器、LDO、时序控制器、监控保护电路等模块组成,通过分层电源树框架实现电能分配。设计需考虑效率、功率密度、噪声性能等关键维度,底层基于Buck转换器和LDO原理工作。使用中需满足严苛的车规环境要求,并通过静态/动态测试及故障注入测试进行验证,确保系统可靠性和安全

qq_40844444的博客 843

【电路设计】SERDES与pcie

明确通信接口需要达到什么样的数据速率、信号完整性以及系统中各个部件的互相作用。2.

数字人生 4569

Spring MVC起步

1.简要概述springmvcSpring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控

等风的帆 547

Android 13 SPRD 源码默认打开多用户实际无效果问题修复

【代码】Android 13 SPRD 源码默认打开多用户实际无效果问题修复。

m0_60898338的博客 449

spring mvc 起步

1:mvc的核心思想是业务数据抽取同业务数据呈现相分离 2:HandlerAdapter用来处理handleinterceptor和 ControlInter 生成的handleExecuteChain 请求 diapatcherServlet 接受请求,--> 交给handleMapper处理,返回一个 handleExecuteChain(包含拦截器和相应的han...

weixin_33897722的博客 148

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spring MVC起步笔记

后端开发

baidu_27384227的博客 298

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

spring实战笔记——spring mvc起步

DispatcherServlet是spring mvc的核心。 两个应用上下文之间的故事 当DispatcherServlet启动的时候,它会创建Spring应用上下文,并加载配置文件或配置类中所声明的bean。 但在Spring Web应用中,通常还会有另一个应用上下文。另外的这个应用上下文是由ContextLoaderListener创建的。 启用Spring MVC @EnableWebM...

lovesman的博客 318

廖雪峰Python教程[完整版]

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

Spring MVC 搭建第一个例子起步(继续SpringMVC hello world)

https://www.jianshu.com/p/65fe0ec18892

JavaNotes的博客 316

spring起步 搭建基于Maven的Spring MVC工程

环境  Win7 旗舰版 +myeclipse-10.7-offline-installer-windows 1.maven安装  1.1检查JDK的安装以及环境变量的配置    打开cmd    echo %JAVA_HOME%    java -version  我这里的版本为 jdk1.7.0_55 1.2下载maven并解压到某个目录 (1)

路远,漫步前行 825

1、Spring MVC起步

课程目录: 1.MVC概念; 2.springMVC概念 3.应用maven工具,管理springMVC 4.在具体项目中实现springMVC MVC的本质,业务数据抽取同业务数据呈现相分离。 用户端的请求通过协议到达前端控制器,前端控制器了解该请求应该被谁来处理,所以将 请求代理给具体的控制器,控制器了解业务逻辑的细节,因此调用业务逻辑 ,生成了业务数据,将其返回给前段

gywtzh0889的专栏 480

Spring MVC 起步

跟踪Spring MVC的请求 在请求离开浏览器时①,会带有用户所请求内容的信息,至少会包含请求的URL。 请求旅程的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,SpringMVC所有的请求都会通过一个前端控制器(front controller)servlet。前端控制器是常用的Web应用程序模式,在这里一个单实例的Servlet将...

61

Spring学习---Spring MVC起步

因为开始学习Spring框架有点晚,所以一直在赶进度,没来得及写博客记录学习过程,确实是一个遗憾吧!本来这种东西遗忘率就挺高的,所以,必须多总结以下.现在的话.已经学习到<Spring实战>这本书的第二部分了,也就是Web中的Spring.所以就边学边抽时间总结吧,至于前面没来得及总结的第一部分,我打算在后面抽空闲补起来.Spring通常是用来开发Web应用的.我们会使用Spring的MVC框架来为

dongmengyuan1020的博客 502
上一篇: spring boot项目起服务时报org.apache.tomcat.jni.LibraryNotFoundError:解决
下一篇: 设计模式之---动态代理
小陀螺LV地球仪
博客等级 码龄9年 20粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值