处理器适配器(映射器)详解:
1、适配器:看创建的类是否是满足适配条件(是否实现了Controlelr接口)
2、映射器:请求的分发
实现请求分发有两种方式
1、配置文件的方式(上午说的就是注解的形式)
如果容器不提供映射器,则默认使用BeanNameUrlHandlerMapping映射器,
映射器:BeanNameUrlHandlerMapping:将请求的url和容器中bean元素的name相匹配
SimpleUrlHandlerMapping:将请求的url和容器中bean元素的id做统一设置
一个id可以匹配多个url
适配器:请求的适配
SimpleControllerHandlerAdapter:控制器必须实现Controller接口
HttpRequestHandlerAdapter:控制器必须实现HttpRequestHandler接口
2、注解的方式(以上配置全都不要)
只需要加入一个元素
<mvc:annotation-driven></mvc:annotation-driven>(对适配器和映射器的封装)
同理:需要通过这个元素找到对应的controller控制器,怎么找?
在新建的controller类上加一个注解@Controlelr,标识这是一个控制器,但是一个类可以有多个方法,具体请求过来之后,找哪一个方法执行????@RequestMapping注解
参数值:传递过来的路径,后缀可写可不写,因为url-pattern有配置
课堂练习10分钟
再建立一个LoginController类和一个Login.jsp页面,为了讲解包扫描<context:conponent-scan>
采用了包扫描,必须遵守一定规则,如果有实现Controller接口的类,一定要删掉,否则报错
RequestMapping():用在类上:代表所有请求都是以这个作为父路径
也可以同时写多个参数
RequestMapping(value="路径",method={RequestMethod.post,RequestMethod.get})
网友评论