Springmvc初步学习

本文深入探讨SpringMVC框架,从概念到实践,包括其作为Spring模块的角色、MVC设计模式的应用、核心组件如DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver的工作原理。文章还介绍了SpringMVC的入门配置、非注解与注解处理器映射器和适配器的使用,并讲解了SpringMVC与MyBatis的整合方法,以及商品修改功能的开发流程和HTTP请求的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

带着问题看springmvc:      

什么是springmvc

springmvc原理

前端控制器,处理器映射器,处理器适配器,视图解析器

springmvc入门程序

目的:对前端控制器,处理器映射器,处理器适配器,视图解析器学习

非注解的处理器映射器,处理器适配器

注解的处理器映射器,处理器适配器

springmvc和mybatis整合

springmvc注解开发

常用的注解学习

参数绑定(简单类型,pojo,集合类型)

自定义的参数绑定

springmvc和struts的区别

springmvc的高级应用

参数绑定(集合类型)

数据回显

上传图片

json数据交互

RESTful支持

拦截器

1.1什么是springmvc           

            首先看什么是springmvc框架了,

            springmvc是spring的一个模块,springmvc和spring无需通过中间整合层进行整合。

            springmvc是一个基于mvc的web框架。

1.2什么是mvc,mvc在b/s系统下的应用

            mvc是一个设计模式

clipboard

 

1.3springmvc框架

前端控制器和后端控制器

前端控制器dispatcherservlet

后端控制器handler

两者之间,前端控制器根据处理器映射器HandlerMapping来匹配对应的后端控制器

请求查找handler,返回一个执行链HandlerExecutionChain{HandlerInterceptor Handler}

处理器适配器HandlerAdapter去执行Handler

处理器适配器调用执行handler,返回ModelAndView给前端控制器

前端控制器将拿到的ModelAndView给视图解析器View resolver请求解析

然后返回一个真正的视图view

然后前端控制器将view进行视图渲染到前端

第一步:发起请求到前端控制器(DispatcherServlet)

第二部:前端控制器请求HandlerMapping查找Handler

可以根据xml配置,注解进行查找

第三步:处理器映射器HandlerMapping向前端控制器返回Handler

第四步:前端控制器调用处理器适配器去执行Handler

第五步:处理器适配器去执行Handler

第六步:Handler执行完给适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView

ModelAndView是springmvc的一哥底层对象,包括Model和View

第八步:前端控制器请求视图解析器去进行视图解析

根据逻辑视图解析成真正的视图(jsp)

第九步:视图解析器向前端控制器返回View

第十步:前端控制器进行视图渲染

视图渲染将模型数据(在ModelAndView对象中)

第十一步:前端控制器向用户返回结果

 

组件:

1.前端控制器Dispatcherervlet(不需要程序员开发)

作用接收请求,响应结果,相当于转发器,中央处理器

有了Dispatcherervlet减少了其他组建之间的耦合度

2.处理器映射器HandlerMapping(不需要程序员开发)

作用:根据请求的url查找Handler

3.处理器适配器HandlerAdapter(不需要程序员开发)

作用:按照特定的规则(HandlerAdapter要求的规则)执行Handler

4.处理器Handler(需要程序员开发)

注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以正确执行Handler

5.视图解析器 View resolver(不需要程序员开发)

作用:进行视图解析,根据逻辑视图解析成真正的视图(view)

6.视图view(不需要程序员开发,需要程序员开发jsp)

View是一个接口,实现类支持不同的View类型(jsp,freemarker,pdf..)

2.入门程序

配置前端控制器

在web.xml中配置servlet,在web_mvc的jar包中,有一个初始的参数配置

配置处理器映射器

在classpath下的springmvc中配置处理器映射器

配置处理器适配器

配置视图解析器

需要配置解析jsp的视图解析器

开发Handler需要实现Controller接口,才能由org.springframework.web.servlet.handler.SimpleServletHandlerAdapter执行

一个类就一个方法

3.非注解的处理器映射器和适配器

处理器映射器:

org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping

多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确映射器处理

处理器适配器:

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter

4.注解的处理器映射器和适配器

DispatcherServlet.properties

前端控制器从上边的文件中加载处理器映射器,适配器,视图解析器等组建,如果不在springmvc.xml中配置,使用默认加载的。

对注解映射器在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

spring3.1之后org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

对注解适配器在spring3.1之前使用

org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

spring3.1之后

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

配置注解的映射器和适配器

开发注解的Handler

使用注解的

 

 

5.springmvc和mybatis的整合

三个配置文件

 

整合service

让spring管理service接口

事务控制

 

整合springmvc

配置处理器映射器,适配器,视图解析器

 

编写jsp

 

加载spring容器

将mapper service controller 加载到spring容器

建议使用通配符加载上边的配置文件

在web.xml中,添加spring容器监听器,加载spring容器

商品修改的功能开发

需求:

操作流程:

1.进入商品查询列表页面

2.点击修改,进入商品修改页面,页面中显示了要修改的商品(从数据库查询)

3.在商品修改页面,修改商品信息,修改后点击提交

 

1.开发mapper

mapper:

根据id查询商品信息

根据更新商品表的数据

2.开发service

接口功能:

根据id查询商品信息

修改商品信息

3.开发controller

方法:

商品信息修改页面的显示

商品信息修改提交

 

方法的返回值

ModelAndView

String

1.返回jsp路径,数据通过request

2.请求转发

redirect方式

forward方式

两种方式的区别,第一种重定向,url会变,数据没有,相当于做了一次新的请求跳转

第二种url不变,只是数据还在,相当于中转转发

void

可以用

request.getDispatcher 跳转或者response向客户端写入json格式数据

 

 

 

post乱码问题

@Controller注解必须要加,作用标识符是一个Handler处理器

@RequestMapping注解必须加,作用:

1.对url和Handler的方法进行映射。

2.可以窄化请求映射,设置Handler的根路径,url就是根路径+子路径请求方式

3.可以限制http请求的方法

映射成功后,springmvc框架生成一个Handler对象,对象中只包括一个映射成功的method

 

注解开发中参数绑定:

将request请求过来的key/value的数据(理解一个串),通过转换(参数绑定的一部分),将key/value串转成形参,将转换后的结果传给形参(整个参数绑定过程)

将自定义转换的实现类注入到适配器中

 

springmvc是面向方法开发的(更接近service接口的开发方式),struts2面向类开发的

springmvc可以单例开发,struts2只能是多例开发

 

内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值