Springmvc的处理器适配器

对于用户的请求,有不同的实现方式,为了方便地调用它们,springmvc简单地分类之后,并分别构建成接口,调用之前,让controller实现相关接口,然后就可以利用多态,使用接口名调用用户设计的方法。而适配器的作用就是让springmvc知道使用那个接口名去调用方法。

一、SimpleControllerHandlerAdapter

在springmvc.xml中配置

<!-- 配置处理器适配器 springmvc框架根据HandlerAdapter接口判断是否是处理器适配器 -->
	<bean
		class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

这个适配器要求controller实现controller接口

public class ItemController1 implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

而Controller接口中

public interface Controller {

	/**
	 * Process the request and return a ModelAndView object which the DispatcherServlet
	 * will render. A <code>null</code> return value is not an error: It indicates that
	 * this object completed request processing itself, thus there is no ModelAndView
	 * to render.
	 * @param request current HTTP request
	 * @param response current HTTP response
	 * @return a ModelAndView to render, or <code>null</code> if handled directly
	 * @throws Exception in case of errors
	 */
	ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception;

}

二、HttpRequestHandlerAdapter

<!-- HttpRequestHandlerAdapter适配器 -->
	<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" 
		/>

它要求实现HttpRequestHandler接口

public class ItemController2 implements HttpRequestHandler {

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

而HttpRequestHandler接口中

public interface HttpRequestHandler {

	/**
	 * Process the given request, generating a response.
	 * @param request current HTTP request
	 * @param response current HTTP response
	 * @throws ServletException in case of general errors
	 * @throws IOException in case of I/O errors
	 */
	void handleRequest(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException;

}

三、注解RequestMappingHandlerAdapter适配器(与注解映射器配套使用)

<!-- 注解处理器映射器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>

<!-- 注解适配器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" 
		/>

方法名和返回值可以自己定

@Controller
public class ItemController3 {
	//商品列表,@RequestMapping中url建议和方法名一致,方便开发维护
	@RequestMapping("/queryItems")
	public ModelAndView queryItems(){
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值