Spring mvc Hello World
添加依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.2.RELEASE</version> </dependency>
配置DispatcherServlet
<servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
如果不配置init-param,那么配置文件的名字是什么,位置放在哪里?
位置放在WEB-INF下面,文件的名字为你servlet的名字-servlet.xml
编写控制器类
@Controller public class HelloWorldController { }
上面的配置,只是表明了此类是一个控制器类,还需要让框架可以扫描到这些有@Controller修饰的类型,需要在mvc的配置文件中,配置下面的内容
<context:component-scan base-package="controller"/> <!-- 会提供一些额外的增强功能,见参考资料--> <mvc:annotation-driven />
mvc:annotation-driven
配置注解驱动,会多了如下一些功能
-
类型转换
-
json数据
-
格式化数据
-
等等
这个配置,随着mvc版本越来越新,其功能是越来越少。
url到控制器方法的映射(也就是处理请求)
@Controller public class HelloWorldController { @RequestMapping("/hello") public String hello(){ System.out.println("hello in hello World ---"); return "/WEB-INF/views/index.jsp"; } }
然后此方法中返回的是视图的物理视图名 ,如果只返回逻辑视图名,需要在mvc配置文件中配置下面的代码
@RequestMapping
有以下几个特点
-
可以放在类上
-
可以放在方法上
-
RequestMapping可以不指定url,那么这个就是默认的
-
可以给它添加各种限制
-
通过HTTP请求方法限制
-
请求Header中的内容进行限制等
-
组合注解
提示:@GetMapping
组合注解,至少要知道4个,这4个是针对http协议的方法来对应起来的
-
get: @GetMapping :用来做查询操作
-
post:@PostMapping :用来做 增加操作
-
delete:@DeleteMapping :用来做删除操作
-
put: @PutMapping :用来做修改操作
/calc/add/1 (get)
/calc/add(post)
/calc/add/1(delete)
/calc/add (put)
作业四:进行求和运算
要求如下:
-
get访问/home/add会打开一个页面,此页面里面有2个文本框一个提交按钮
-
点击提交按钮后,提交的地址仍然是/home/add,并且是post提交
-
相关的控制器方法收到提交的数据后,进行运算(交个模型类去运算),把结果传递给视图
-
在视图中显示结果即可
参考资料
mvc:annotation-driven