1. @RequsetMapping("/Hello")
注解,表示的是从当前项目地址下找接受Hello请求的Servlet,加不加/都一样
这里"/Hello"是value默认属性
函数返回值是跳转到的位置
2. 视图解析器:拼串,加了设置好的前缀和后缀,返回值只需要写success
3. 配置前端控制器:拦截所有请求,分发给不同控制器
如果不指定配置文件位置,会默认去找/WEB-INF/springDispatcherServlet-servlet.xml
其中springDispatcherServlet是前端控制器的servlet-name
4. 前端控制器的url-pattern设置为/,而不是/*
/*:拦截所有请求包括JSP
/:拦截所有请求,不拦截*.jsp
写"/"也是为了迎合后来的REST风格
5. 不能用两个方法mapping到一个请求
6. RequsetMapping放到类上相当于设置类下方法的基地址
放到方法上相当于告诉处理该请求的是这个方法
7. @RequsetMapping的其他属性:
method:请求方式,例如GET,POST,默认为全接收(点链接是GET方式,表单内method="POST"是POST方式)
params:规定请求参数,例如param={"username=123","pwd"},在地址栏访问格式为/Hello?username=123&pwd=haha)
headers:规定请求头信息,比如哪些浏览器可以访问哪些被限制
8. @RequsetMapping中的value可以使用通配符:*,?等
*表示任意多个字符,?表示任意单个字符,**任意多层路径
9. @RequsetMapping使用占位符:
在@RequsetMapping路径的任意位置使用{id}
之后在方法的参数中写@PathVariable("id"),这样方法中就可以使用变量id
路径上的占位符只能占一层路径
10. REST风格
URL地址都是一样的,用请求方式区分增删改查四种操作
推荐起名:/资源名/资源标识符
11. 发起PUT,DELETE请求:
(1)配置一个filter,拦截所有请求(用/*)
(2)创建一个POST表单,表单中携带一个_method参数,这个参数值为put或delete
12. 高版本Tomcat对Rest支持可能遇到问题,解决方法:在JSP头部加入isErrorPage=true
13. SpringMVC中获取请求参数(以前是request.getparameter())
(1)直接传参(默认方式),在方法参数里写一个和请求参数名相同的变量,这个变量就来接受请求参数的值
带:有值;没带:null
(2)用@RequestParam("xxx")获取名为xxx的参数值,并把值保存在这句话紧接之后的变量上
@RequestParam中的三个参数:
value:指定的参数的key;required:这个参数是否是必须的;defauValue:设置默认值
注意:与@PathVariable("id")区别!@PathVariable("id")是获取路径中占位符的值,而requestparam是URL中?后面的值
14. 如果参数对象为POJO,Spring MVC会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值
而且支持级联属性(POJO内属性也为POJO,也会自动匹配)
15. SpringMVC中能传入的原生API:
1) HttpServletRequest
2) HttpServletResponse
3) HttpSession
4) java.security.Principal
5) Locale
6) InputStream
7) OutputStream
8) Reader
9) Writer
原文:https://www.cnblogs.com/Kinghao0319/p/12194586.html