1.前端控制器
2.映射器
3.适配器
4.控制器
5.视图解析器
一.前端控制器的配置
要点:@前端控制器的实现类为DispatcherServlet,@<init-param>标签为设置初始化的参数的名字和值,配置程序初始化是自动扫描spring_mvc.xml文件,@web项目需要加classpath前缀,@<load-on-startup>标签是指在程序启动时就加载该servlet类,@url-pattern标签中写的是servlet的访问路径,根据这个标签的名字服务器会找到被映射的同名的servlet字节码文件

二.映射器,适配器,控制器,视图解析器的配置
第一种
要点:@有多个映射器和适配器可选择 @配置控制器要实现controller接口,实现类进行逻辑操作,name属性的值指的是浏览器要访问的uri地址

,spring_mvc为xml文件名 @配置视图解析器时可以配置前缀和后缀,在前端控制器就可以在一定情况下省略后缀名

第二种
要点:@适配器和映射器要一起使用,可使用<mvc:annotation-driven/>标签代替 @ 使用注解创建对象时需要开启主键扫描<context:component-sanc/> @使用注解后不需要实现接口,只需在类上使用@Controller即可,name属性被@RequestMapping(" uri地址")所代替,用在方法上 ??


三.控制器类中方法的三种返回类型
1.返回值为void
2.返回值为ModelAndView对象
3.返回值String
要点:@参数可以使用Model,ModelMap,HttpServletRequest, 前两者调用的方法为addAttribute(" name","value"),装健值对数据来保存请求的参数,后者调用setAttribute方法来保存,但是两者的核心一样都是将请求参数保存在request域对象中 @给视图解析器配置前后缀对重定向,转发(forword:/redirect:)没有作用,需要手动加后缀
四.参数的绑定
1.简单参数绑定:添加参数,表单name属性的值和传递的形参一致,不想一致时需要加@RequestParam(表单的name属性的值)
2.pojo参数绑定:形参为对象,表单的name属性值和对象中的属性名一致




3.自定义类型:
具体操作:
1.实现Converter<转换前的类型 , 转换后的类型>接口,下图的例子时间字符串时间转换成对象

2.在IOC容器创建Formattingconversionservicefactorybean类,并将实现接口的类注入

3.使用mvc:annotation-driven标签中的conversion-service属性,并在需要转换的属性加@Datetimeformat(pattern="格式")
五.如何释放静态资源
@使用<mvc:resources location="/文件夹" mapping="/文件夹/**"/>标签
六.文件上传
1.配置xml

2.编写控制器

3.编写动态页面

网友评论