第一个SpringMVC项目
通过Spring的学习,我们都知道可以通过xml或者注解的方法进行配置,SpringMVC也可以通过这两种方式进行配置。一般使用注解版本,更加简洁方便,便于维护。
配置版
- 新建一个Module 我们命名为spring-02-hello 并且添加web4.0的支持。
- 导入SpringMVC的依赖
- 配置web.xml 主要是配置DispatcherServlet
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
- 编写SpringMVC的配置文件,名称最好取名为springmvc-servlet.xml
这里的名称其实任意 最好按照官方的要求来写
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
这里包含了SpringMVC的三大件,后续在注解版中不需要配置,但是需要清楚原理;
对应上一章节的图片来看,HandlerMapping就是处理映射器,用来将请求映射为HandlerExecution类型的对象;HandlerExecution就是映射后的对象;HandlerAdapter就是处理器适配器,用于处理映射过来的数据。
- 编写一个Controller类,需要返回一个ModelAndView,封装数据和视图;
1 | java复制代码package com.my.controller; |
- 这时候需要在springmvc-servlet.xml中进行注册bean
1 | bash复制代码<bean id="/hello" class="com.my.controller.HelloController"></bean> |
- 最后创建一个hello.jsp页面,用于接收封装的数据
1 | javascript复制代码<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
- 项目结构:
- 配置tomcat进行测试
注意点
- 有时候会出现404,优先考虑jar包的依赖是否导入
- 没有导入可以进行相应设置:
- 打开Project Structure - Artifacts
- 选择当前的Artifacts 在WEB-INF下新建lib目录
- 将所有的jar包添加到lib中
4. 全选OK
- 对于配置版的看法:
- 实际开发中,主要是注解版投入生产,在这里主要是让大家理解SpringMVC执行原理
- 对于映射器等几个名称不需要记住,知道即可以。
注解版
- 注解版比配置版更加简单,首先仍然是创建modules,这次命名为spring-03-hello-anno,并且添加web4.0依赖
- 由于maven的资源过滤问题,建议在pom.xml添加
1 | xml复制代码<build> |
- 和配置版一样在web.xml中进行固定的配置
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
/ 和 /* 的区别:
- < url-pattern > / </ url-pattern >
- 只匹配所有的请求 不匹配.jsp等
- < url-pattern > /* </ url-pattern >
- 如果设置成这样,那么xx.jsp会再次进入DispatcherServlet进行匹配然后就变成了xx.jsp.jsp形成死循环
- 和配置版一样配置springmvc-servlet.xml
- 这里和配置版有区别
- context:component-scan : 自动扫描的包,指定包下的注解生效,由IOC容器统一管理。这里熟悉Spring的应该都了解
- mvc:default-servlet-handler :让Spring MVC不处理静态资源
- mvc:annotation-driven : 支持mvc注解驱动,自动帮我们注入了处理映射器和处理适配器
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
- 创建Controller : com/my/controller/SpringAnnoController.java
1 | kotlin复制代码package com.my.controller; |
- 这里我们无需再实现Controller接口,直接通过Controller注解完成。
- @RequestMapping代表着映射路径,这里的路径就是 xxx/项目名/hello 无需再设置视图。
- 方法中声明的model是为了把数据带到视图中去。
- 这个sayHello方法的返回值适配上web.xml中的前缀后缀最后的跳转到 /WEB-INF/jsp/hello.jsp
- 最后在/WEB-INF/jsp/创建视图层hello.jsp
1 | javascript复制代码<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
- 最后配置tomcat启动项目即可
- 项目结构
小结
实战结合上一章的内容,我们可以很明确的了解SpringMVC基于三大件:处理映射器、处理适配器以及视图解析器。 在注解版中我们已经看不到处理映射器和适配器了,但是我们需要了解SpringMVC的执行原理,以便于更好地学习。在实际开发中,通常我们只需要手动配置视图解析器即可。
本文转载自: 掘金