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的注解
-
RequestParam注解
作用:把请求中的指定名称的参数传递给控制器中的形参赋值
属性:
value:请求参数中的名称
required:请求参数中是否必须提供此参数,默认值是true,必须提供 -
作用:用于获取请求体的内容(注意:get方法不可以)
属性 required:是否必须有请求体,默认值是true -
PathVariable注解
作用:拥有绑定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符
属性 value:指定url中的占位符名称
Restful风格的URL
请求路径一样,可以根据不同的请求方式去执行后台的不同方法
restful风格的URL优点
结构清晰 符合标准 易于理解 扩展方便
4.转发和重定向
转发forward() 重定向sendRedirect()
- 请求 前者一次 后者两次请求
- 根目录 前者包含项目访问地址 后者没有项目访问地址
- 地址栏 前者不会发生变化 后者会发生变化
- 哪里跳转 前者服务器端进行的跳转 后者浏览器端进行的跳转
- 请求域中数据 前者不会丢失 后者会丢失
5.过滤器和拦截器
过滤器是servlet规范中一部分,任何java web工程都可以使用
拦截器是springmvc框架自己的,只有使用了springmvc框架的工程才能用
过滤器在url-pattern中配置了/*之后,可以对所有要访问的资源拦截
拦截器他是只会拦截访问的方法,如果访问的是jsp,html,css,image,或者js是不会进行拦截的