@RequestMapping 请求映射
告诉SpringMVC, 控制器里的这个方法处理哪个请求
从源码中发现,RequestMapping可以标明在方法上,也可以标明在类上。
如果标注在类上的话, 是给控制器里的所有方法处理的请求加父路径。
打开servers服务器配置 web.xml 项目的web.xml都继承于他。
有个Default servlet , 她的url-pattern是拦截所有请求**
而且DefaultServlet是Tomcat中处理静态资源的!!!!!
我们的配置中有前端控制器,url-pattern也拦截了所有请求。
相当于我们前端控制器,覆盖了tomcat中的DefaultServlet
结果:静态资源来到前端控制器,没有一个方法的RequestMapping是处理这个.html的请求
RequestMapping属性
1.method属性:规定这个方法接收的请求方式 GET请求,POST请求
点链接是get请求,如果这个方法只接收post请求,会报错
状态码:
405 | 不支持get请求。 |
---|---|
4xx | 都是客户端的错误。比如说请求方式不对,或者请求带的数据不对。 |
404 | 客户端发了一个错误的页面地址,没有找到。 |
2.param属性 请求必须带这个参数。没带的话,报404错误。
3.header属性:规定请求头。
请求头有User-Agent:浏览器信息;
4.consumes属性:只接收内容类型是哪种请求。
规定请求头中的Content-type
5.produces属性:告诉客户端,返回的内容类型。
给响应头加上Content-type
1.请求可以写模糊的通配符。
?能匹配一个字符,* 可以替代任意多个字符,一层路径
**能替代多层路径
2.请求路径可以有占位符
处理器方法
目的:1.可以获取请求路径中占位符的值。
方法: 2.方法属性加上@PathVariable(“”)
SpingMVC支持REST风格
1.客户端给服务器发请求,就是要资源。服务器存的都是资源。
2 表现层:资源的不同表现状态。图片 静态资源 数据库 记录
以http协议的四种请求方式来区分对资源的操作
请求:/book/1
get请求方式提交 | 查 |
---|---|
post请求方式提交 | 增 |
put请求方式提交 | 更 |
delete请求方式提交 | 删 |
页面上只能发起 get请求方式,和post请求方式。
页面上怎么发put请求,和delete请求?
/book/1 get 查询1号图书
/book/1 delete 删除1号图书
/book/1 put 更新1号图书
/book/ post 添加图书
页面要做的操作:
1.post类型的表单,
2.有个表单项name为_method, value是put/delete
<a href="book/1">查询图书</a></br>
<form action="book" method="post">
<input type&