SpringMVC—注意事项

我们的征程是星辰大海,而非人间烟尘

文章目录

  • SpringMVC---注意事项
    • 为什么JSP存放在 WEB-INF 目录?
    • 从定向和转发的区别
        • 1.从地址栏显示来说
        • 2.从数据共享来说
        • 3.从运用地方来说
        • 4.从效率来说
      • 流程上的区别
        • 转发流程:
        • 重定向流程:
    • 通过Ajax请求的数据,请求成功,没有跳转

为什么JSP存放在 WEB-INF 目录?

1.基于不同的功能 JSP 被放置在不同的目录下

这种方法的问题是这些页面文件容易被偷看到源代码,或被直接调用。某些场合下这可能不是个大问题,可是在特定情形中却可能构成安全隐患。用户可以绕过Struts的controller直接调用JSP同样也是个问题。

为了减少风险,可以把这些页面文件移到WEB-INF 目录下。基于Servlet的声明,WEB-INF不作为Web应用的公共文档树的一部分。因此,WEB-INF 目录下的资源不是为客户直接服务的。我们仍然可以使用WEB-INF目录下的JSP页面来提供视图给客户,客户却不能直接请求访问JSP。

  1. JSP存放在 WEB-INF 目录下更为安全

    如果把这些JSP页面文件移到WEB-INF 目录下,在调用页面的时候就必须把"WEB-INF"添加到URL中。

我们知道,实现页面的跳转有两种方式,一种是通过redirect的方式,一种是通过forward的方式。redirect方式的跳转,系统会在一个新的页面打开要跳转的网页;而forward方式跳转,系统会在原来的页面上打开一个要跳转的网页。所以放到WEB-INF目录下的文件是不允许采用redirect方式的跳转来访问的

从定向和转发的区别

1.从地址栏显示来说

forward是服务器请求资源,服务直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址。

redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的URL。

2.从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据。

redirect:不能共享数据。

3.从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块。

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等。

4.从效率来说

forward:高

redirect:低

流程上的区别

转发流程:

1.由客户端发起一个HTTP请求。
2.服务端ServletA接收到HTTP请求,调用Web应用内部的ServletB,将request请求传递或转发出去。
3.ServletB接收到转发的信息,处理完之后,将传递给ServletA。
4.ServletA就将ServletB的信息响应给服务器。
注意:转发是在服务器内部的发生的,而且是在同一个Web应用下的Servlet之间发生的,对于客户端来说,只有一次请求和响应

重定向流程:

1.有客户端发起HTTP请求
2.服务端接收到请求后,服务端告诉客户端去访问sendRedirect()中的指定的location,并且响应给客户端。
3.客户端接收到服务器的响应后,再次发送HTTP请求(请求的是sendRedirect()中的指定的location)。
4.服务端(和上面说的服务端可以不是同一个)接收到请求后,给出响应。
注意:重定向是客户端经过2次或多次对服务器进行访问的,2次或多次访问的的服务器可以是不一样的
5.重定向不能访问WEB-INF

通过Ajax请求的数据,请求成功,没有跳转

若请求成功,且未跳转。则是由于ajax请求造成

通过Ajax请求的数据返回的是字符串,不会进行跳转。

如果要需要重定向,在Ajax请求的成功回调中执行window.location.assign='w=url'就可以了,或者更改请求方式,改为普通表单提交,路径跳转等。

请求的成功回调中执行window.location.assign=‘w=url’`就可以了,或者更改请求方式,改为普通表单提交,路径跳转等。

SpringMVC---注意事项相关推荐

  1. springmvc配置DispatcherServlet拦截url注意事项

    <!-- 前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-cla ...

  2. SpringMVC学习笔记-新建工程及一些注意事项

    1.学习网站 :B站狂神说 狂神说的文档链接:https://mp.weixin.qq.com/s/8ddT6FD0Y4f3XdbEz0aqpQ 2.新建SpringMVC工程 (我的是IDEA202 ...

  3. SpringMVC项目注意事项(HTTP状态 404 - 未找到 类型 状态报告 消息 文.件[/web/WEB-INF/jsp/allBook.jsp] 未找到 )(狂神说Java)

    HTTP状态 404 - 未找到 类型 状态报告 消息 文.件[/web/WEB-INF/jsp/allBook.jsp] 未找到 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源 ...

  4. SpringMVC之请求参数的获取方式

    转载出处:https://www.toutiao.com/i6510822190219264516/ SpringMVC之请求参数的获取方式 常见的一个web服务,如何获取请求参数? 一般最常见的请求 ...

  5. Java入门学习注意事项有哪些?

    想要学好java技术,做好学习规划路线和注意事项是非常重要的,尤其是零基础学员,Java涉及到的知识点非常多,我们需要制定合理的Java学习路线图,这样会事半功倍,下面小编和大家总结一下Java入门学 ...

  6. Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6973266.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(九)--My ...

  7. SpringMVC 表单验证

    SpringMVC 表单验证 本章节内容很丰富,主要有基本的表单操作,数据的格式化,数据的校验,以及提示信息的国际化等实用技能. 首先看效果图 然后项目目录结构图 接下来用代码重点学习SpringMV ...

  8. SpringMVC+Mybatis+MySQL配置Redis缓存

    SpringMVC+Mybatis+MySQL配置Redis缓存 1.准备环境: SpringMVC:spring-framework-4.3.5.RELEASE-dist Mybatis:3.4.2 ...

  9. 【SSM框架系列】SpringMVC的请求和响应

    request和response request对象的作用 获取请求参数 作为域对象存取数据 获取请求头 请求转发 response功能 回写数据,JSON格式字符串 页面跳转(请求重定向) Spri ...

最新文章

  1. 调研Redis高可用两种方案
  2. CSS 多浏览器兼容又一方案
  3. mysql导出表数据
  4. 软件测试某公司面试题2014
  5. html在ie中img地址为https,关于IE10以下的img标签问题解决
  6. iF.svnadmin安装部署
  7. 【戴明环】PDCA-问题闭环思维模型
  8. vue项目运行后自动打开浏览器
  9. MATLAB并行计算
  10. 保研面试复习之计算机网络篇
  11. 所有最好的Google幻灯片键盘快捷键
  12. js统计英文单词数量
  13. vue-项目使用过程中遇到的一些问题
  14. 任正非,你也太能装逼了吧?
  15. PAT --- 1072.开学寄语 (20 分)
  16. 中国视频监控市场进入高清时代
  17. Matlab多项式求值(2)(roots和poly的使用)
  18. 最强的数据扩增方法竟然是添加标点符号?
  19. mac下#include nested too deeply错误处理
  20. 【源码】2022漫威最新热门电影《奇异博士》的LDA主题影评模型

热门文章

  1. Java自学第6期——Collection、Map、迭代器、泛型、可变参数、集合工具类、集合数据结构、Debug
  2. 项目总结-网络舆情分析
  3. 通过百度语音api实现语音控制五子棋——基于flask
  4. 阿里云盘内测申请_阿里云网盘 Teambition 内测申请开放!
  5. 51单片机系列(三)51 单片机游戏设计 —— 双人对战小游戏(石头剪刀布)
  6. 反病毒利器Autoruns和ProcessExplorer, SREng - 本人推荐使用的查毒杀毒辅助工具
  7. ESP32学习入门:WiFi连接网络
  8. Ubuntu-拼音输入法安装
  9. 单一世界架构初探之世界地图
  10. Salome_Meca 2021 安装教程(Centos)