最近在学spring mvc,只是了解了一点点,所以特此记录,以免以后忘记
1.先经过DispatcherServlet
配置同普通的servlet
2.比较重要的几个注解
1)RequestMapping在注解方法时使用,方法一般返回值是一个String类型,根据InternlViewResolver的前缀和后缀对应实际视图(返回值也可以是void,view,ModelAndView,不管是什么类型,都会转换为ModelAndView类型)
即可以修饰类,也可以修饰方法。修饰类的时候,相当于项目的根路径。
即可以过滤method,也可过滤parm和header
2)RequestParm,RequestHeader,CookieValue注解方法形参,可以获取相应的参数和http header和cookie
RequestParm主要有3个参数
value:请求参数的名字
required:是否必须,默认为true
defaultValue:指定请求参数的默认值
RequestHeader,CookieValue参数了RequestParm类似
3)SessionAttributes(value={"user"}, types={String.class})将对应的值映射到session域中
3.方法的形参
1)RequestParm和RequestHeader
2)Map,放到request域里面
3)Model,还没测试,应该也是放在request域中
3)POJO,根据set,get方法映射
4.可以使用原生servlet API
比如HttpServletRequest,HttpServletResponse , PrintWriter
5.对于rest形式的支持
restful是针对资源的
URI代表一个资源,对资源的操作放在Http请求方式中
get-查
post-增加
put-更新
delete-删除
综合上面的解释,我们总结一下什么是RESTful架构:
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层(Representation);
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
6.最好加上<mvc:annotation-driven>这个驱动,能增加一些好处,详见references
7.<mvc:default-servlet-handler>解决静态资源无法访问的问题
7.关于数据类型转换和格式化
数据先经过WebDataBinder,通过ConversionService进行数据类型转换和格式转换
8.关于重定向
如果返回的字符串中带 forward: 或 redirect: 前缀时,SpringMVC 会对他们进行特殊处理:将 forward: 和redirect: 当成指示符,其后的字符串作为 URL 来处理 – redirect:success.jsp:会完成一个到 success.jsp 的重定向的操作
forward:success.jsp:会完成一个到 success.jsp 的转发操作