spring mvc 杂记

1.springMVC和Struts2的优略分析

共同点:
都是表现层框架,基于MVC模型编写的。
他们的底层都离不开原始的servletAPI
他们处理请求的机制都是一个核心控制器
区别:
springMVC的入口是servlet,而Struts2的入口是filter
springMVC是基于方法设计的,而Strusts2是基于类,Strusts2每次执行都会创建一个动作类。所以springMVC会比Strusts稍微快一点
Struts2 的 OGNL 表达式使页面的开发效率相比 Spring MVC 更高些,但执行效率并没有比 JSTL 提升,尤其是 struts2 的表单标签,远没有 html 执行效率高。

2.绝对路径和相对路径

在自己跟着视频做的时候,Controller里面的path带/,但是jsp里面的请求不带/,就觉得很奇怪,自己加了个/就不显示东西了,问了一下旁边的大佬同事,具体解决请看
https://blog.csdn.net/qq_37630354/article/details/82533141

3.Spirngmvc的注解

  1. RequestParam注解
    作用:把请求中的指定名称的参数传递给控制器中的形参赋值
    属性:
    value:请求参数中的名称
    required:请求参数中是否必须提供此参数,默认值是true,必须提供

  2. 作用:用于获取请求体的内容(注意:get方法不可以)
    属性 required:是否必须有请求体,默认值是true

  3. PathVariable注解
    作用:拥有绑定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符
    属性 value:指定url中的占位符名称
    Restful风格的URL
    请求路径一样,可以根据不同的请求方式去执行后台的不同方法
    restful风格的URL优点
    结构清晰 符合标准 易于理解 扩展方便

4.转发和重定向

转发forward() 重定向sendRedirect()

  1. 请求 前者一次 后者两次请求
  2. 根目录 前者包含项目访问地址 后者没有项目访问地址
  3. 地址栏 前者不会发生变化 后者会发生变化
  4. 哪里跳转 前者服务器端进行的跳转 后者浏览器端进行的跳转
  5. 请求域中数据 前者不会丢失 后者会丢失

spring mvc 杂记_第1张图片
spring mvc 杂记_第2张图片

5.过滤器和拦截器

过滤器是servlet规范中一部分,任何java web工程都可以使用
拦截器是springmvc框架自己的,只有使用了springmvc框架的工程才能用
过滤器在url-pattern中配置了/*之后,可以对所有要访问的资源拦截
拦截器他是只会拦截访问的方法,如果访问的是jsp,html,css,image,或者js是不会进行拦截的

你可能感兴趣的:(学习笔记)