目录
2.配置SpringMVC核心控制器DispatcherServlet(调度Servlet)好理解吧
5.配置SpringMVC核心文件spring-mvc.xml
@RequestMapping:用于建立请求URL和处理请求方法之间的对应关系,可用于类(可以不用在类上,默认为根目录),可以用于方法上(常用)
@ResposeBody:告知SpringMVC框架,该方法不进行视图跳转(返回的字符串不会再进行视图拼接),直接进行数据响应,可以直观的与上方的方法比较
SpringMVC快速入门
SpringMVC是一种基于java实现的MVC(model ,view, controller)设计模式的请求驱动类型的轻量级Web框架
需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转。
步骤:
1.导入SpringMVC相关坐标
在pom.xml中导入jar包:
2.配置SpringMVC核心控制器DispatcherServlet(调度Servlet)好理解吧
在web.xml中配置:
其中/中的/表示缺省。
3.创建Controller类和视图页面
Controller类:
视图页面也就是一个jsp文件。
4.使用注解配置Controller类中业务方法的映射地址
5.配置SpringMVC核心文件spring-mvc.xml
既然有注解那就必然需要扫描啦。当然扫描是需要context组件来完成的,所以命名空间需要加入context的命名空间,这样才可以使用context标签。
目录的大概样子:
组件解析
- 前端控制器(DispatcherServlet):负责调用各个组件。
- 处理器映射器(HandlerMapping):控制器会请求查询Handler,映射器根据注解时配置的映射地址,返回处理器执行链给控制器。
- 处理器适配器(HandlerAdaptor):控制器请求执行Handler,适配器则会调度相应的Handler,Handler执行并返回结果给适配器,适配器再返回ModelAndView给控制器。
- 视图解析器(ViewResolver):解析视图对象,返回给前端控制器。
其中Handler就是自己所写的一些方法,自己想实现的一些功能等。
SpringMVC注解解析
@RequestMapping:用于建立请求URL和处理请求方法之间的对应关系,可用于类(可以不用在类上,默认为根目录),可以用于方法上(常用)
这样书写了之后,可以在浏览器输入对应的映射地址,对其进行访问:
注意:该方法的返回值为字符串形式,通过返回值,控制器会找到视图解析器,将此字符串解析,匹配到对应的jsp文件:
@ResposeBody:告知SpringMVC框架,该方法不进行视图跳转(返回的字符串不会再进行视图拼接),直接进行数据响应,可以直观的与上方的方法比较
运行查看结果:
可以看出,使用了@ResponseBody注解之后,return返回的字符串不会再经过视图解析器解析渲染,而是直接响应一个字符串。
SpringMVC数据响应
在学习了上方的注解之后,我们可以通过注解结合方法,实现请求之后的响应。
响应可分为:
1.页面跳转
- 直接返回字符串(上方演示过方法save())
- 通过ModelAndView对象返回(new 一个对象,再返回)
2.回写数据
- 直接返回字符串(上方演示过方法save()2)
- 返回对象或集合(需要配置注解驱动)
这个就是配置注解驱动(非常重要)它可以自动将你返回的对象或集合转化为json格式!所以记得每次在spring-mvc.xml配置时都写上这个注解驱动。
在学习了上方的注解之后,我们可以通过注解结合方法,实现请求之后的响应。
SpringMVC获取请求数据
首先创建一个User类,里面封装了基本属性name和age:
以及其对应的get和set方法,同时再重写以下toString()方法,方便调用时可以打印出其属性。
里面会有相应的方法,自行选择
1.获得基本类型请求数据
一样,在ControllerTest类中继续写方法
还记得这两个注解的作用吗,不记得回去看。
这样写完呢save4()方法中可以看到,里面有两个参数,当浏览器发送请求数据时,只要和方法里面的参数对应,那么就可以获取到这些基本类型参数了。演示如下:
在浏览器搜索框中输入对应映射地址的同时,输入请求参数
在获得了参数之后,方法中的println语句就可以在控制台输出了
2.获得POJO类型请求数据
MVC在web端获得的参数封装到实体当中。
再写一个方法,方法中的参数为对象(需要被封装的实体)
打开浏览器输入对应映射地址和参数
注意,当参数的属性名和实体(对象)当中的属性名一致时,MVC就会吧这些数据封装到实体当中
查看控制台
这就是获取POJO请求参数。
3.获得数组类型请求数据
同理,方法参数类型为数组类型
输入数组需要的属性
这种一般不太常用,了解就好,也很简单
4.获得集合类型请求数据(很繁琐)
复杂的懒得写了,可以自行搜索一下。
总结
我也是一个小白,跟着网上的视频学习,自学的路上是很困难的,大家都一起加油!
看到这里了,能把上面的看懂,就大概明白了SpringMVC框架大致是用来作什么的。我浅谈一下目前学的Spring和SpringMVC。
Spring框架:Spring框架主要作用是提供一个容器,这个容器可以通过反射机制帮你创建对象,使你的代码耦合度大大降低。大部分的依赖注入都是可以通过注解来实现,这样我们就不需要去编写依赖注入,保护我们的头发。Spring框架还可以方便进行代码单元测试,因为其集成的Junit4可以快速的实现方法测试。
SpringMVC框架:主要服务与web层,与web层的各种数据打交道,同时可以与Spring容器一起使用,也可以说是在Spring框架基础上的框架。SpringMVC框架主要是化身为前端控制器,对其各个组件进行控制,从而实现数据响应,获取请求数据。
如果这篇文章对您有那么一点点的帮助,那请您小点一个赞叭~