前言
在spring mvc中,使用映射处理器可以把web请求映射到正确的处理器上,spring内置了很多映射器,而且我们也可以自定义处理器,映射处理器都能把请求传递到处理器执行链接上,并且处理器执行链接必须包含能处理该请求的处理器,而且处理器链接也能包含一系列拦截器
接下来就是一些常见的处理映射器
BeanNameUrlHandlerMapping
功能:寻找Controller
根据url请求去匹配bean的name属性url,从而获取Controller
这里注意:这是默认的映射器,也就是说我们不配置这个,也能自动执行这个
如:入门程序中的案例:
即根据自定义的/hello.do,找到对应的mycontrol.java类
SimpleUrlHandlerMaping
功能:寻找Controller
根据浏览器url匹配简单url的key,key又Controller的id找到Controller
如:在映射文件中配置
测试:在浏览器输入http://localhost:100/springmvc1/zwl.do或者http://localhost:100/springmvc1/slycmiaoxi.do
输出结果:
hello world
此外:这个映射器是把url进行集中配置
ControllerClassNameHandlerMapping
功能:寻找Controller
根据类名(Mycontrol)类名.do来访问,类名首字母小写
在配置文件中增加如下配置
|
|
注意,这里并没有声明mycontrol.do和只有一个类mycontrol.java
测试:在浏览器输入http://localhost:100/springmvc1/mycontrol.do
结果:
hello world
事实上,以上三个映射器都可以同时存在
下面将是处理器适配器
SimpleControllerHandlerAdapter
功能:执行controller
调用controller里面方法,返回modelAndView。
|
|
HttpRequestHandlerAdapter
功能:执行controller
首先新建一个类
然后在配置文件中配置
测试:在浏览器中输入:http://localhost:100/springmvc1/zwl.do
输出结果:
lol
注意这两个处理器设配器可以共存!
命令控制器
Spring mvc通过命令设计模式接受页面参数。
自定义命令控制器
首先新建一个pojo类
自定义控制器
封装参数页面(这里是login.jsp)
配置bean
回显数据:
测试:在浏览器中输入http://localhost:100/springmvc1/login.jsp到login.jsp
然后分别将name输入中文和非中文,发现出现中文乱码
需要Spring编码过滤器:在web.xml配置
然后输入中文,就没有乱码了