【SSM-SpringMVC框架】非注解的处理器适配器和映射器

1.非注解的处理器映射器:

  1.处理器映射器:(HandlerMapping)

   处理器映射器负责根据request请求找到对应Handler处理器及Intercepter拦截器,将他们封装在HandlerExecutionChain对象中给前端控制器中返回。

  1. org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping:

    BeanNameUrlHandlerMapping处理器映射器,根据请求的url与spring容器中定义的bean的name进行匹配,从而从spring容器中找到bean的实例。

   

<!—beanName Url映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

 另一个处理器适配器:

  2. org.springframework.web.servlet.handler.SimpleUrlHandlerMapping:

    SimpleUrlHandlerMapping处理器适配器,他可以将url和处理器bean的id进行统一配置。

 

        <!—简单url映射 -->
	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="/items1.action">controller的bean id</prop>
				<prop key="/items2.action">controller的bean id</prop>
			</props>
		</property>
	</bean>

 2.非注解的处理器适配器:

   2.处理器适配器(HandlerAdapter):

   HandlerAdapter会根据适配器接口对后端控制器进行包装(适配),包装后即可对处理器进行执行,通过扩展处理器适配器可执行多种类型的处理器。这里使用了适配器设计模式。


   1.org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter:

         简单的处理器适配器,所有实现了org.springframework.web.servlet.mvc.Controller接口的bean,都通过此适配器进行适配执行:

  

  <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

 

    2.org.springframework.web.HttpRequestHandlerAdapter:

    HttpRequestHandlerAdapter,http请求处理器适配器,所有实现了org.springframework.web.HttpRequestHandler接口的bean,通过此适配器进行适配,执行。

 

 <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>

    handler开发:

   

public class ItemList2 implements HttpRequestHandler {

	@Override
	public void handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// 商品列表
		List<Items> itemsList = new ArrayList<Items>();

		Items items_1 = new Items();
		items_1.setName("联想笔记本");
		items_1.setPrice(6000f);
		items_1.setDetail("ThinkPad T430 联想笔记本电脑!");

		Items items_2 = new Items();
		items_2.setName("苹果手机");
		items_2.setPrice(5000f);
		items_2.setDetail("iphone5  苹果手机!");

		itemsList.add(items_1);
		itemsList.add(items_2);

		// 填充数据
		request.setAttribute("itemsList", itemsList);
		
		// 视图
		request.getRequestDispatcher("/WEB-INF/jsp/order/itemsList.jsp").forward(request, response);


	}

}
    从上边里可以看出,此适配器的handlerRequest方法没有返回ModelAndView,可通过response修改响应内容,比如json,








  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值