SpringMVC的视图

文章目录

  • 1. ThymeleafView
  • 2. 转发视图
  • 3. 重定向视图
  • 4. 视图控制器view-controller
  • 5. 总结
  • 6. 荐书


在这里插入图片描述

SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户SpringMVC视图的种类很多,默认有转发视图和重定向视图 当工程引入jstl的依赖,转发视图会自动转换为JstlView 若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视图解析器解析之后所得到的是ThymeleafView。

1. ThymeleafView

当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析器解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转

@RequestMapping("/testHello")
public String testHello(){return "hello";
}

在这里插入图片描述

2. 转发视图

SpringMVC中默认的转发视图是InternalResourceView
SpringMVC中创建转发视图的情况:
当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"forward:"去掉,剩余部分作为最终路径通过转发的方式实现跳转

例如"forward:/",“forward:/employee”

@RequestMapping("/testForward")
public String testForward(){return "forward:/testHello";
}

在这里插入图片描述

3. 重定向视图

SpringMVC中默认的重定向视图是RedirectView
当控制器方法中所设置的视图名称以"redirect:"为前缀时,创建RedirectView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"redirect:“去掉,剩余部分作为最终路径通过重定向的方式实现跳转
例如"redirect:/”,“redirect:/employee”

@RequestMapping("/testRedirect")
public String testRedirect(){return "redirect:/testHello";
}

在这里插入图片描述

注: 重定向视图在解析时,会先将redirect:前缀去掉,然后会判断剩余部分是否以/开头,若是则会自动拼接上下文路径


4. 视图控制器view-controller

当控制器方法中,仅仅用来实现页面跳转,即只需要设置视图名称时,可以将处理器方法使用view-controller标签进行表示:

  • path:设置处理的请求地址
  • view-name:设置请求地址所对应的视图名称
<!--path:设置处理的请求地址view-name:设置请求地址所对应的视图名称
-->
<mvc:view-controller path="/testView" view-name="success"></mvc:view-controller>

注:
当SpringMVC中设置任何一个view-controller时,其他控制器中的请求映射将全部失效,此时需要在SpringMVC的核心配置文件中设置开启mvc注解驱动的标签:
<mvc:annotation-driven />


5. 总结

Spring MVC 是一个轻量级的Java Web框架,它采用了MVC(Model-View-Controller)设计模式来帮助开发者构建Web应用程序。在Spring MVC中,视图(View)是负责渲染并呈现用户界面的组件。

Spring MVC支持多种视图技术,包括JSP(JavaServer Pages)、Thymeleaf、Freemarker、Velocity等。开发者可以根据自己的喜好和需求选择合适的视图技术。

在Spring MVC中,视图的主要作用是将模型(Model)的数据呈现给用户。开发者可以在控制器(Controller)中将需要展示的数据放入模型对象中,然后将模型对象传递给视图进行渲染。

视图通常会使用模板引擎来处理动态内容和模板布局。不同的视图技术有不同的语法和特性,但它们都提供了一种将数据和静态页面结合的机制。

Spring MVC视图负责将模型的数据呈现给用户,并且开发者可以选择适合自己的视图技术来实现界面呈现。


6. 荐书


《Spring Security实战》

推荐语本书是一本关于 Spring Security 的应用指南,主要讲解了 Spring Security 的基础知
识点、核心概念,以及围绕身份验证和授权过程的关键处理流程。书中采取了循序渐
进、示例辅助的编写方式,以期让读者能够轻松入门并且随着对本书的深入阅读而能
稳步得到技能提升,同时也逐渐加深对于 Spring Security 和身份验证以及授权过程的
理解。

相信在通读并深刻理解本书的内容之后,读者就能够熟练运用 Spring Security

对应用程序的各层进行安全配置。本书提供了许多应用示例,并且根据内容结构的编

排还提供了 3 个动手实践的练习章节,这样,读者就能通过每一章的知识内容并且结

合实践练习来巩固所学知识。

本书面向使用 Spring 框架构建企业级应用程序的开发人员。每个开发人员都应该

从设计阶段就开始考虑应用程序的安全性问题。本书将讲解如何使用 Spring Security

配置应用程序级别的安全保障。使用 Spring 开发应用程序,开发人员必须了解如何正

确地使用 Spring Security,以及如何在应用程序中应用安全配置。这是非常重要的,如

果没有经过体系化的学习和实践就盲目地借助网络资源应用 Spring Security,那么所实

现的安全配置势必有所缺失,从而造成应用程序存在漏洞或造成数据泄露的严重问题。

有鉴于此,建议从事 Spring 应用程序开发的人员阅读本书并充分理解其中的内容。


内容简介:安全性是没有任何商量余地的。我们要依赖Spring应用程序来传输数据、验证凭据和防止攻击。采用“通过设计实现安全防护”的原则将能够保护我们的网络避免数据被窃取和未经授权的入侵。 《Spring Security实战》展示了如何在造成破坏之前防止跨站脚本和请求伪造攻击。该书将从基础开始讲解,其中将模拟密码升级并添加多种类型的授权。随着技能的增长,读者将可以将Spring Security应用到新的架构中,并创建高级的OAuth2配置。完成之后,读者将拥有一个定制的Spring Security配置,它可以保护应用程序免受常见的和特殊的威胁。
  主要内容
  ●对密码进行编码以及对用户进行身份验证
  ●端点的安全防护
  ●安全性测试的自动化
  ●设置独立的授权服务器


在这里插入图片描述

购书链接:点我跳转


在这里插入图片描述



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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Node.js】NPM 和 package.json

NPM npm 是 Node.js 的包管理工具&#xff0c;基于命令行&#xff0c;用于安装、升级、移除、管理依赖项。 常用命令&#xff1a; npm init&#xff1a;初始化一个新的 npm 项目&#xff0c;创建 package.json 文件。&#xff08;括号里为默认值&#xff09; description&am…

如何保证 RabbitMQ 的消息可靠性?

项目开发中经常会使用消息队列来完成异步处理、应用解耦、流量控制等功能。虽然消息队列的出现解决了一些场景下的问题&#xff0c;但是同时也引出了一些问题&#xff0c;其中使用消息队列时如何保证消息的可靠性就是一个常见的问题。如果在项目中遇到需要保证消息一定被消费的…

DRM全解析 —— CRTC详解(1)

本文参考以下博文&#xff1a; Linux内核4.14版本——drm框架分析(4)——crtc分析 特此致谢&#xff01; 1. 简介 CRTC实际上可以拆分为CRTC。CRT的中文意思是阴极摄像管&#xff0c;就是当初老电视上普遍使用的显像管&#xff08;老电视之所以都很厚&#xff0c;就是因为它…

最全解决docker配置kibana报错 Kibana server is not ready yet

问题复现&#xff1a; 在浏览器输入http://192.168.101.65:5601/ 访问kibana报错 Kibana server is not ready yet 问题报错&#xff1a; 首先查看kibana的日志 docker logs kibana 看到报错如下&#xff1a; {"type":"log","timestamp":&q…

基于BERT模型进行文本处理(Python)

基于BERT模型进行文本处理(Python) 所有程序都由Python使用Spyder运行。 对于BERT&#xff0c;在运行之前&#xff0c;它需要安装一些环境。 首先&#xff0c;打开Spyder。其次&#xff0c;在控制台中单独放置要安装的&#xff1a; pip install transformers pip install tor…

cvpr24写作模板pdfLaTex编译器注意点小结

文章目录 1 更改作者显示 Anonymous CVPR submission2 \label标签的作用3 换行符// 与换列符&4 \medskip5 首行缩进6 插入图片6.1 单幅图片6.2 并排显示 Reference https://cvpr.thecvf.com/Conferences/2024 1 更改作者显示 Anonymous CVPR submission 这一行开头加上% …

C++设计模式-装饰器(Decorator)

目录 C设计模式-装饰器&#xff08;Decorator&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-装饰器&#xff08;Decorator&#xff09; 一、意图 动态地给一个对象添加一些额外的职责。就增加功能来说&#xff0c;Decorator模式相比生成子…

嵌入式养成计划-35------C++绪论------C++数据类型------array容器------命名空间

七十三、 工具QT 73.1 安装步骤 73.2 什么是 Qt Qt 是一个跨平台的 C图形用户界面应用程序框架。 它为应用程序开发者提供建立艺术级图形界面所需的所有功能。 它是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正的组件编程。 73.3 Qt 的优点 跨平台&…

Vue中如何进行分布式日志收集与日志分析(如ELK Stack)

在Vue中实现分布式日志收集与日志分析&#xff08;使用ELK Stack&#xff09; 日志收集和分析在现代应用程序中是至关重要的&#xff0c;它们可以帮助开发人员监视和诊断应用程序的行为&#xff0c;从而提高应用程序的稳定性和性能。ELK Stack&#xff08;Elasticsearch、Logs…

UG\NX二次开发 特征选择对话框 UF_UI_select_feature

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 qq_42007619 订阅本专栏,非常感谢。 简介: UG\NX二次开发 特征选择对话框 UF_UI_select_feature 效果: 代码: #include <vector>…

竞赛选题 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

漏洞复现-易思无人值守智能物流文件上传

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…