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

成都 网站建设培训学校天津建设教育培训网

成都 网站建设培训学校,天津建设教育培训网,中文静态网站下载,wordpress 新增页面文章目录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://www.pierceye.com/news/765256/

相关文章:

  • 网页制作与网站制作wordpress二次元风格
  • 贵州省城乡建设局网签网站工业设计网站有那些
  • 网站 电信已备案 联通泗阳做网站设计
  • 胶州做淘宝的网站龙南黄页全部电话
  • 可以看网站的手机浏览器藁城住房和城乡建设局网站
  • 关于网站制作的指标哪家公司网站做的比较好
  • 网站开发一般多少钱规划设计公司毛利
  • .net 网站地图高端网站建设 n磐石网络
  • 商丘网站建设价格无锡网站建设制作公司
  • 做装饰材料的网站dede英文网站
  • 长沙招聘网站哪个最好网站登录页面html模板
  • 网页创建网站做商城网站报价
  • 网网站建设公司网络整合营销
  • 广州本地门户网站wordpress视频格式
  • 做网站如何购买服务器自己做的网站注册用户无法收到激活邮箱的邮件
  • 商城网站系统建设中信建设有限责任公司 吴方旭
  • 辽阳市建设行业培训中心网站蒙文门户网站建设
  • 凡科建站官网入口wordpress个性首页
  • 上海信息技术做网站不连接wordpress安装
  • 高端网站开发培训免费企业黄页查询网站
  • 最新的网站开发技术全国新冠新增最新消息
  • 试玩app推广网站建设广州网站维护制作
  • 2018年网站设计公司阿里巴巴网官方网站
  • 英文网站常用字体icp备案的网站名称
  • 扬州恒通建设网站镇江润州区建设局网站
  • 关于网站制作的论文网站注册时间
  • 一个人可以备案几个网站做图去哪个网站找素材
  • 江苏建设管理信息网站自己可以做装修效果图的网站
  • html网站欣赏杭州战争网站建设
  • 乐清市做淘宝网站公司网站支付体现功能怎么做