SpringMVC-【回顾】

回顾MVC架构

什么是mvc:模型、视图、控制器 -----软件设计规范

回顾servlet

  1. maven项目
  2. 导入依赖(webmvc,servlet-api,jsp-api,jstl,junit)
  3. 创建子模块,在子模块中添加框架支持(在子模块中导入依赖jsp、servlet【因为父工程有这两个依赖,就直接继承】)
  4. 在java包中创建类,继承httpServlet 实现doget doset方法
  5. 在doGet中写逻辑【获取前端参数、调用业务层、视图转发或者重定向】
  6. 在web.xml注册上
  7. 写一个视图,去请求跳转

MVVM:M V VM ViewModel:双向绑定

初识SpringMVC

基于java实现的轻量级MVC框架
轻量级、简单
高效、基于响应的MVC框架
与Spring兼容良好
约定大于配置
功能强大:RESTful、数据验证、本地化、格式化、主题化
简洁灵活

SpringMVC的执行流程【重点】以localhost:8080/A/hello 其中A为服务器的某个站点,hello控制器部署在其上

DispatcherServlet->HHanderMMapping—>HanderExcetion---->DS—>HanderAdapter—>Controller-------->Modle【得到】–>HD—>DS—>ViewResolver—>DS------>View【返回】

DispatcherServlet表示前置控制器,是整个SpringMVC 的控制中心,用户发出请求,DispatcherServlet接收请求并拦截请求

HanderMapping为处理器映射器,根据请求URL查找Handler,由DispatcherServlet调用
Handler的处理器为<bean id="/hello" class="com.controller.HelloController"/>

HanderExcetion表示具体的Hander,其作用是根据URL查找控制器,如果URL被查找控制器为hello

HanderExcetion将解析后的信息传递给DispatcherServlet

HanderAdapter表示处理器适配器,其按照特定的规则去执行Handler 【找Controller】

Handler让具体的Controller执行

Controller会将执行信息传递给HA

HA将视图逻辑名称或模型传递给DS

DS调用视图解析器ViewResolver来解析HA传递的逻辑视图名

视图解析器ViewResolver将解析完的3视图逻辑名传给DS

DS根据视图结果,调用具体的视图

最终呈现给用户

网上其它详细总结
在这里插入图片描述

在这里插入图片描述

使用注解开发SpringMVC

@RestController不会被视图解析器解,返回的直接是字符串

Controller配置总结

  1. 添加web支持
  2. 导依赖
  3. web.xml配置DispatcherServlet 绑定文件并在Resources下创建该文件
  4. 该文件中有注解驱动,包扫描,过滤静态资源等需要配,还有视图解析器

RestFul风格

原来:http://localhost:8080/add?a=1&b=2
RestFul:http://localhost:8080/add/1/2{在参数请求那里添加@PathhVariable,通过该注解映射到URL上对应}
地址一样根据请求方式的不同而不同,达到URL的复用

好处:
安全
简洁
高效:支持缓存

重定向和转发

不用视图解析器,默认为转发,在return后添加完整的路径名
重定向为:在路径前加redirect

接收请求参数及数据回显

请求参数跟列表参数一致,便直接对应即可
http:localhost:8080/hello?a=1
public String hello(String a){}即可

请求参数跟列表参数一致,便直接对应即可
http:localhost:8080/hello?a=1
则需要
加注解@RequestParam(“b”)
public String hello(@RequestParam(“b”) String b){}

SpringMVC解决乱码问题

在web.xml中配置乱码过滤

		<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

什么是json【重点】

对象----》json—>:JSON.stringify(对象)
json—》对象---->:JSON.parse(json)

java怎么生成json传给前端

工具:Jackson:应该是目前较好的json解析工具
使用步骤:

  1. POM导入依赖
  2. 配置web.xml:有DispatherServlet跟过滤器
  3. resources下写springmvc配置文件:创建自动扫描来交给IOC管理、视图解析器、
  4. 表写pojo类
  5. 编写controller层控制类
  6. 在controller中:@ResponseBody表示不走视图解析器,会直接返回一个字符串
  7. jackson中有ObjectMapper类,将该类实例化有writeValueAsString方法可以将对象转为json数据
  8. 传list集合[{},{},{}]

SpringMVC:ssm框架的整合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/27027.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2018 年一月联考逻辑真题

2018 年一月联考逻辑真题 三、逻辑推理&#xff1a;第 26-55 小题&#xff0c;每小题 2 分&#xff0c;共 60 分。下列每題给出的A.、 B.、C.、D.五个选项中&#xff0c;只有一项是符合试题要求的。请在答题卡上将所选项的字母涂黑。 真题&#xff08;2018-26&#xff09;-翻译…

区块链的基本介绍

目录 1、简介 2、区块链的分类 2.1 公有链 2.2 联盟链 2.3 私有链 3、区块链特征 4、区块链结构 5、区块链对记账权利的分配方式 5.1 POW 5.2 PoS 5.3 DPoS 6、Defi、NFT、 gameFi 7、DAPP 7.1 DAPP 的核心要素 8、比特币 8.1 比特币简介 8.2 比特币数字签名…

基站机房:保障通信网络稳定,如何解决安全隐患?

基站机房作为无线通信网络的关键组成部分&#xff0c;承载着大量的网络设备和通信设施&#xff0c;对于运营商和通信服务提供商来说具有重要意义。 无论是大型运营商还是通信服务提供商&#xff0c;动环监控系统都将成为他们成功运营和管理通信网络的关键工具。 客户案例 案例…

Java学习路线(22)——测试框架Junit

一、单元测试概念 单元测试就是针对最小的功能单元编写测试代码&#xff0c;Java程序最小的功能单元是方法&#xff0c;因此&#xff0c;单元测试就是针对Java方法的测试&#xff0c;进而检查方法正确性。 二、Junit测试框架 &#xff08;一&#xff09;概念&#xff1a; Jun…

HBase:(三)HBase API

HBase:(一)安装部署_只爱大锅饭的博客-CSDN博客hbase部署安装https://blog.csdn.net/qq_35370485/article/details/130988364?spm1001.2014.3001.5501 1.创建maven项目 2.添加依赖 <dependency><groupId>org.apache.hbase</groupId><artifactId>hba…

【Java基础】注解与反射

一、学习笔记 &#xff08;本文内容基本源自参考链接1视频教程&#xff09; 1、注解的含义 1&#xff09;注解&#xff08;annotation)是从jdk5.0开始引入的新技术&#xff0c;其作用&#xff1a;不是程序本身&#xff0c;可对程序作解释&#xff08;该作用与注释comment相同…

MFC(十二)多个对话框

我们来制定多个对话框&#xff0c;每个对话框都有不同的功能&#xff0c;单击下一步&#xff0c;即可跳转到下一个对话框 1.新建一个启动按钮 2.在资源视图&#xff0c;Dialog里面&#xff0c;右键-->添加资源---->dialog>选择IDD PROPPAGE_SMALL新建 属性页&#…

同浏览器下多窗口进行跨源通信、同源通信

同浏览器下多窗口进行跨源通信、同源通信 多页面通信运用到了“发布订阅”的设计模式&#xff0c;一个页面发布指令&#xff0c;其他页面进行订阅并进行相应的行为操作&#xff01; 一、跨源通信 window.postMessage() window.postMessage() 方法可以安全地实现跨源通信。通常…

Vue.js 中的数据双向绑定是如何实现的?

Vue.js 中的数据双向绑定是如何实现的&#xff1f; Vue.js 是一款流行的前端框架&#xff0c;它的核心功能之一是数据双向绑定。本文将介绍 Vue.js 中数据双向绑定的实现原理&#xff0c;并附上相关代码实例。 什么是数据双向绑定&#xff1f; 在传统的前端开发中&#xff0c…

智能应用搭建平台——LCHub低代码表单 vs 流程表单 vs 仪表盘

1. LCHub低代码如何选择 「流程表单」:填报数据,并带有流程审批功能,适合报销、请假申请或其他工作流; 「表单」:填报数据,并带有数据协作功能,如修改、删除、导入、导出,并可以给不同的人不同的管理权限; 「仪表盘」:数据分析处理、结果展示功能,如数据汇总、趋…

JavaSSM笔记(一)

**建议&#xff1a;**对Java开发还不是很熟悉的同学&#xff0c;最好先花费半个月到一个月时间大量地去编写小项目&#xff0c;不推荐一口气学完&#xff0c;后面的内容相比前面的内容几乎是降维打击&#xff0c;一口气学完很容易忘记之前所学的基础知识&#xff0c;尤其是Java…

Python--注释

Python--注释 <font size4, colorblue> 一、Python中注释的形式<font size4, colorblue> 1、单行注释&#xff1a;使用“#”符号注释<font size4, colorblue> 2、多行注释&#xff1a;使用一对三个英文单引号注释<font size4, colorblue> 3、多行注释&…

通用文字识别OCR 之实现数字化教材

引言 通用文字 OCR 识别 API 是一种功能强大的服务&#xff0c;可用于多场景、多语种的整图文字检测和识别&#xff0c;通过将OCR技术应用于学校环境&#xff0c;可以实现教育资源的数字化和学习过程的自动化。 本文将探讨通用文字识别OCR 在学校的实际应用&#xff0c;希望对…

如何在 JavaScript 中创建自定义警告框

本文将介绍如何使用 jQuery UI、SweetAlert2 和自定义警报功能在 JavaScript 中创建自定义警报框。 使用 jQuery UI 创建自定义警告框 我们可以使用 jQuery UI 来模仿 JavaScript 本机 alert() 函数的功能。 尽管 jQuery UI 有很多 API&#xff0c;您可以使用它的 dialog() AP…

基于摄影测量的三维重建【终极指南】

我们生活的时代非常令人兴奋&#xff0c;如果你对 3D 东西感兴趣&#xff0c;更是如此。 我们有能力使用任何相机&#xff0c;从感兴趣的物体中捕捉一些图像数据&#xff0c;并在眨眼间将它们变成 3D 资产&#xff01; 这种通过简单的数据采集阶段进行的 3D 重建过程是许多行业…

泰克AFG31000系列任意波函数发生器应用

模拟电路检定 这是一个模拟世界。所有物理量均使用模拟信号捕获和表示。因此&#xff0c;需要检定放大器、滤波器和转换器等模拟电路的性能。 InstaView? 技术避免在阻抗不匹配的 DUT 上增加的波形不确定性频率范围为 25 MHz 至 250 MHz由于信号保真度高&#xff0c;无需使…

# 车载软件架构 —— 闲聊几句AUTOSAR OS(三)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标准。到最…

SpringBoot整合OSS文件上传

一、注册阿里云账号并开通OSS服务 1、登录阿里云账号 2、创建一个bucket 3、创建子用户 对自用户分配权限&#xff0c;打开操作OSS的全部权限&#xff08;也可根据业务需求进行更改&#xff09; 4、配置上传跨域规则 任何来源: *允许方法: POST任何请求头Headers: * 二、…

sklearn中的roc_auc_score(二分类或多分类)

官方API地址&#xff1a; sklearn.metrics.roc_auc_score — scikit-learn 1.2.2 documentationExamples using sklearn.metrics.roc_auc_score: Release Highlights for scikit-learn 0.22 Release Highlights for scikit-learn 0.22 Probability Calibration curves Probabi…

如何查询期刊的SCI分区

好消息是CSDN AI写作助手上线了 我不用自己一个字一个字去写SCI分区是啥&#xff08;x&#xff09; 然而—— 麻了还是自己写吧&#xff0c; 在人工智能这条路上&#xff0c;CSDN还是需要努力。 简单来说&#xff0c;我们做科研、发文章&#xff0c;肯定是需要比较的 谁的…