spring mvc学习

介绍

spring mvc总体介绍:前端传入到控制层(C),然后存入到javabean中(M),调用持久层的数据,返回数据到视图(V)。
在这里插入图片描述

1.1 SpringMVC和Struts2的优略分析

共同点: 它们都是表现层框架,都是基于MVC模型编写的。
它们的底层都离不开原始ServletAPI。 它们处理请求的机制都是一个核心控制器。
区别:
Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter
Spring MVC 是基于方法设计的,而Struts2是基于类,Struts2每次执行都会创建一个动作类。所以Spring MVC 会稍微比 Struts2 快些。
Spring MVC 使用更加简洁,同时还支持 JSR303, 处理 ajax 的请求更方便 (JSR303 是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面,就可以在需要校验的时候进行校验了。)
Struts2 的OGNL 表达式使页面的开发效率相比Spring MVC 更高些,但执行效率并没有比JSTL提升,尤其是struts2的表单标签,远没有html执行效率高。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 springmvc执行顺序

在这里插入图片描述
1、服务器启动,应用被加载。读取到web.xml中的配置创建spring容器并且初始化容器中的对象。从入门案例中可以看到的是:HelloController和InternalResourceViewResolver,但是远不止这些。
2、浏览器发送请求,被DispatherServlet捕获,该Servlet并不处理请求,而是把请求转发出去。转发的路径是根据请求URL,匹配@RequestMapping中的内容。
3、匹配到了后,执行对应方法。该方法有一个返回值。
4、根据方法的返回值,借助InternalResourceViewResolver找到对应的结果视图。
5、渲染结果视图,响应浏览器。

1.3 转发和重定向

疑问能否在OneServlet中保存值到请求域中,在另一个TwoServlet中打印出来?
如果是不同的请求,不能取出来。如果是同一次请求是可以取出来的

1.3.1 转发

概念:由服务器端进行的页面跳转

在这里插入图片描述
需求
​ 实现从OneServlet中转发到TwoServlet
步骤
OneServlet向请求域中添加了一个键和值,转发给TwoServlet
TwoServlet就从请求域中取出键和值,打印到浏览器上。
效果
在这里插入图片描述
转发的特点
地址栏不发生变化,显示的是上一个页面的地址
请求次数:只有1次请求
根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
请求域中数据不会丢失

1.3.2 重定向

概念:由浏览器端进行的页面跳转
在这里插入图片描述
需求
从OneServlet重定向到TwoServlet

步骤
在OneServlet中向请求域中添加键和值
使用重定向到TwoServlet,在TwoServlet中看能否取出请求域的值
效果
在这里插入图片描述
重定向的特点
地址栏:显示新的地址
请求次数:2次
根目录:http://localhost:8080/ 没有项目的名字
请求域中的数据会丢失,因为是2次请求
在这里插入图片描述

1.4 spring mvc简单案例

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值