当前位置: 首页 > news >正文

网站开发的策划书各种广告牌图片

网站开发的策划书,各种广告牌图片,重庆网站建设开发,网站建设的优点文章目录SpringMVC的自定义视图解析器[1] SpringMVC的视图解析器[2] SpringMVC的自定义视图解析器SpringMVC自定义视图解析器的使用[1] 目前项目资源的声明位置和访问中存在的问题[2] 使用自定义视图解析器优化资源跳转路径[3] 使用restful声明公共单元方法请求转发WEB-INF下的… 文章目录SpringMVC的自定义视图解析器[1] SpringMVC的视图解析器[2] SpringMVC的自定义视图解析器SpringMVC自定义视图解析器的使用[1] 目前项目资源的声明位置和访问中存在的问题[2] 使用自定义视图解析器优化资源跳转路径[3] 使用restful声明公共单元方法请求转发WEB-INF下的资源SpringMVC的自定义视图解析器 [1] SpringMVC的视图解析器 问题: 我们在使用了SpringMVC后对于请求的处理由以前我们自己声明 Servlet处理变为声明单元方法来处理。请求处理完成之后需要将 处理结果响应给浏览器 响应方式有直接响应请求转发重定向。对于 请求转发和重定向我们在单元方法中是通过返回值来告诉 DispatcherServlet如何进行此次请求的响应。而方法的返回值只有一个所 以我们就需要在返回值值中声明指定的关键字让DispatcherServlet可以 通过关键字来区分是请求转发还是重定向那么DispactherServlet底层是 如何来实现请求转发和重定向的区分的呢 解决: 在DispatcherServlet的底层增加逻辑代码根据单元方法的返回值 将其返回值中的forward或者redirect关键字拆分出来然后根据关键字 以及资源路径最终完成资源的请求转发或者重定向。而这段逻辑代码 就是根据单元方法的返回值来完成最终的资源的处理为了让Dispatcher Servlet的代码结构层次更加清晰我们可以将这段逻辑代码专门封装 起来然后在DispatcherServlet中进行调用即可。也就意味着单元方法的 返回值被DispatcherServlet接收后作为实参传递给了这段封装好的逻辑 代码。 实现: 视图解析器 本质: 视图解析器就是SpringMVC官方封装好的根据单元方法的返回值 完成对应的请求转发或者重定向的对象。由DisatcherServlet来调用。 内容: InternalResourceView:请求转发 RedirectView:重定向 ModelAndView:请求转发和重定向 代码示例: [2] SpringMVC的自定义视图解析器 问题: 目前我们在SpringMVC的响应中虽然我们直接在单元方法中返回字符串数据来 表明请求转发或者重定向的资源但是DispatcherServlet的底层默认使用 ModelAndView来完成视图资源的解析和跳转。但是ModelAndView这个视图 解析器比较死板ModelAndView会将单元方法返回的字符串根据关键拆分后 来完成资源的跳转比如:”forward:/index.jsp”,那么ModelAndView就会直接 请求转发index.jsp资源。但是我们在实际生产环境中往往会有很多特殊的需求 这样ModelAndView就无法满足了比如我们在项目下创建一个a文件夹在 a文件夹下创建b子文件夹在b下创建一个c子文件夹然后将项目的页面资 源全部放到c文件夹下这样我们如果在单元方法中请求转发c文件夹中的资源 返回值路径就会很麻烦 ”forward:/a/b/c/index.jsp” ”forward:/a/b/c/page.jsp” “forward:/a/b/c/sel.jsp”… 而且后期一旦资源路径的文件夹名字发生变更修改起来也会非常的麻烦。 解决: 使用自定义视图解析器而我们自定义的视图解析器除了可以让我们根据需求 配置一些路径上的常量参数以外还需具备ModelAndView的逻辑。所以 我们自己需要从头创建一个新的视图解析器在我们自己创建的视图解析器中 声明ModelAndView中的原有逻辑代码以及我们自己需要的部分常量参数。 但是ModelAndView的逻辑我们是不知道的那么能不能让SpringMVC官方 提供一个支持部分数据自定义的视图解析器呢答案是可以的。我们可以通过配置 文件来配置一些我们在视图解析器中的常量数据。 实现: InternalResourceViewResolver概念: 因为InternalResourceViewResolver可以让我们通过配置文件来设置一些常量 参数所以我们将该视图解析器称为自定义视图解析器。 使用: 在springmvc.xml文件中进行配置在单元方法中按照指定的格式返回资源路径 代码示例: SpringMVC.xml的配置 测试单元方法示例代码: SpringMVC自定义视图解析器的使用 [1] 目前项目资源的声明位置和访问中存在的问题 问题: 目前我们在完成功能开发时会将项目相关的页面资源及静态资源直接声明 在web目录下或者web目录下的子文件夹中。而web目录及其声明的子 目录中的资源在浏览器中是可以直接被访问到的。也就是说只要我们知道 某个资源的URL地址在浏览器中是可以直接发起请求访问该资源的极不安全。 解决: 假如有一天你变得很有钱为了将钱进行保值你就将钱都买成了古董。我们将 买的古董放在家里的客厅里面但是我们的朋友只要知道家里的地址就可以过来 把玩古董。后来因为客厅的古董实在是太多了于是呢我们将古董放在了厢房中 一部分。而厢房我们也是对外开放的也就说朋友来了可以直接进入厢房来把玩。 但是对于一些非常重要的古董我们希望不能直接对外进行开放将它们给隐藏 起来。这样有朋友来了我们可以根据这位朋友的人品来决定是否让他来欣赏 重要的古董。如果我们觉得不靠谱就算朋友知道我们有该古董但是我们仍然是 可以拒绝的说我没有这个东东。假如靠谱我们可以将古董从密室中拿出来给 朋友欣赏。也就是说我们放在密室中的古董我们自己是可以把控这些古董的访 问权限的。而客厅和厢房中的我们无法把控因为只要朋友来了就可以直接访问。 实现方案: 在我们的web项目中造一间密室将重要的资源放到密室中。而密室是对外不开 放的也就说密室中的资源必须通过tomcat服务器的内部转发才能进行访问。就 算浏览器听说项目有这样密室并且密室中也有浏览器想要的资源浏览器发起的 请求地址是正确的但是我们可以在服务器端死不承认我们没有这个资源在后 台给浏览器响应404.如果是我们觉得靠谱的请求我们就在服务器端请求转发资 源给浏览器使用。 项目密室: 其实我们的web项目在创建的时候就自动的在web目录下创建了密室就是 WEB-INF文件夹。也就是说WEB-INF文件夹下的资源浏览器是无法直接访问 的必须通过内部请求转发才能访问。 代码示例: [2] 使用自定义视图解析器优化资源跳转路径 问题: 我们在将重要的项目资源放在WEB-INF文件夹中后只能通过内部的请求转发来 访问资源。如果WEB-INF下的资源较多造成请求转发的路径书写麻烦而且后 期一旦资源的目录发生变更修改起来会非常的麻烦怎么办? 解决: 我们真正想在单元方法中想写的是资源的名字而请求转发WEB-INF下的资源路 径是公共的每次都要写。而刚好我们的自定义视图解析器就是专门用来进行请求 转发的而且可以设置转发资源的公共前缀和后缀信息。所以我们可以使用自定 义视图解析器来完成WEB-INF下的资源的请求转发。 示例 SpringMVC.xm中配置自定义视图解析器 声明单元方法请求转发注意返回值直接为资源名 [3] 使用restful声明公共单元方法请求转发WEB-INF下的资源 问题: 在项目中使用了自定义视图解析器后可以在单元方法中简单的返回一个 WEB-INF下的资源的名字就可以完成资源的请求转发了美滋滋。但是我们的资 源是非常多的但是我们的单元方法的返回值只能有一个。总不能我们给WEB-INF 下的每个资源都声明一个对应的单元方法来完成请求转发吧太麻烦了。 解决: 根据请求请求转发WEB-INF下的资源的单元方法是肯定要声明的。我们可以 声明一个公共的单元方法该单元方法不参与请求的逻辑处理只负责根据请求 转发WEB-INF下的资源。 实现 使用restful完成 示例: [4] 重新配置springmvc.xml文件中的资源放行
http://icebutterfly214.com/news/39795/

相关文章:

  • 征程 6X 常见 kernel panic 问题
  • 2025年11月宁夏数字人服务商/供应商最新专业推荐:AI驱动下的企业数字化转型新引擎
  • 25.11.14
  • Java Benchmark使用
  • 如何在测试覆盖不足后补充验证
  • 算法沉淀第七天(AtCoder Beginner Contest 428 和 小训练赛) - 详解
  • 升鲜宝供应链管理系统、各端的访问地址及nginx 真实的配置方法
  • 【HT-086-Div.2】错乱的集合
  • uiautomator2元素查看器WEditor的安装和启动
  • 从RvmTranslator到PlantAssistant
  • 用【WPF+Dlib68】实现 侧脸 眼镜虚拟佩戴 - 用平面图表现空间视觉 - 教程
  • CF 1844G Tree Weights
  • 洛谷 P4242. 树上的毒瘤
  • Upcoming Rust language features for kernel development - 教程
  • 洛谷题单指南-组合数学与计数-P1287 盒子与球
  • 2025 年最新推荐铝板厂家排行榜,涵盖 5052/6061/7075 铝板及纯铝板/高纯铝板优质供应商精选
  • P9902 『PG2』模拟最大流 题解
  • P10360 [PA 2024] Desant 3
  • AI一周资讯 251108-251114
  • Linux Shell脚本基础语法
  • Linux内核xarray数据结构采用
  • windows下配置cmake+opencv报错
  • 2025年广东儿子不学习沉迷网络公司权威推荐榜单:青少年戒掉网瘾/初中生沉迷网络游戏/孩子沉迷网络游戏源头公司精选
  • CF2161
  • 详细介绍:Endnote | word中加载项消失不见,如何处理?
  • Python操作多波段图像改变数据结构
  • 2025年空气滤芯批发厂家权威推荐榜单:离心式空气滤芯/油浴式空气滤芯/过滤式空气滤芯源头厂家精选
  • 2025年低氮燃烧器品牌综合评测:技术领先企业排名与选购指南
  • 字的bi-gram可能是个馊主意
  • c++初学者的随笔记录_4