SpringMVC一刷笔记

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

猜你喜欢

转载自www.cnblogs.com/Kinghao0319/p/12194586.html