SpringMVC
SpringMVC三大组件
DispatherServlet springMVC核心组件(中央处理器)
处理器映射器:
初始化配置文件,将所有的controller中@RequestMapping(“first”),请求被DispatcherServlet转发过来后,就是用用户请求的资源名称和服务列表中得资源名称进行匹配,如果不存在此资源,如果该资源不存在,于是会报404错误,如果存在我们访问的资源,就返回一个handler对象(对象中包含我们服务的具体的代码信息)
处理器适配器:
根据映射器返回的标记找到具体的类,然后找到类中具体映射方法,执行并返回结果。
视图解析器:
对处理器映射器返回的结果进行解析,然后将解析的结果呈献给客户端。
SpringMVC配置文件的位置
1.如果我们将配置文件放在resources下面,可以任意的给到当前文件设定名称,同时我们在web.xml中初始化的时候只需要书写当前配置文件的名称
2.我们在resources下面创建不同框架的配置文件包,然后我们将我们的配置文件放在其中
contextConfigLocation
classpath:springmvc/springmvc.xml
3.我们可以将配置文件放到WEB-INF中,DispatcherServlet就不需要配置初始化参数了。有一个要求:我们的springmvc.xml配置文件的名称【Servlet名字】-servlet.xml
SpringMVC配置文件中的url-pattern
/服务器上的静态资源无法使用
/* 服务器上除了控制器资源之外的所有其他资源都无法访问了
Springmvc 采用的是/
1.只能使用/springmvc才能够支持restful
2./新的路径的拦截形式
3.Tomcat配置了一个servlet
default
org.apache.catalina.servlets.DefaultServlet
debug
0
listings
false
1
default
/
这个时候springmvc配置的servlet的url-pattern会覆盖服务器上的这个默认servlet,我们服务器上的所有的静态资源都不能使用了
解决静态资源不能使用的问题:
mvc:annotation-driven/ springMVC全注解的方式进行springmvc控制器方法的调用
mvc:annotation-driven/和单独配置我们的适配器和映射是一种简化配置
表单参数的接受
Servlet:接受表单数据的方式
Request:getParameter…() 我们获取的数据都是字符串,我们需要自己去书写我们的类型转换代码,然后springmvc就不一样了,他自动的给你找到对应的类型
1.接受普通数据:
控制器方法:
表单中如果只写出了参数的声明,这个时候必须传递参数
参数自动类型转换,请求路径中参数的key名字必须和代码中参数的名称一致
页面内容:
对应的函数类型
2.普通的pojo对象
控制器方法:
接受普通的java对象
页面内容:
3.复杂的pojo对象方式的接受
控制器方法:
页面内容:
4.list集合类型的参数
控制器方法:
页面内容:
5.map集合类型
控制器方法:
页面内容:
6.数组类型
控制器代码:
页面代码:
7.时间类型的转换和传递
控制器代码:
页面代码:
配置文件代码(springmvc配置文件):
配置转化器函数代码