java 映射器与适配器

一、环境 

spring + spring MVC

二、注解方式

这种方式映射器和适配器都是必须配置的,但实际开发中一般会选择下面的第二种mvc的方式!

<!-- spring 3.1 后 我的环境是 spring 4.3 -->  
<!-- 注解映射器 -->  
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

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


<!-- spring 3.1 前 -->  

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

<!-- 注解适配器   -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<!-- 
	可以使用mvc:annotation-driven代替上边的注解映射器和注解适配器。优点:
	默认会绑定很多参数,比如json转换器。一般实际的开发中使用mvc:annotation-driven方式
 -->
    <mvc:annotation-driven></mvc:annotation-driven>

三、非注解方式之映射器

1、非注解映射器的两种方式,当使用非注解的映射器时也可以不配置适配器,springmvc会使用默认的适配器,在/org/springframework/web/servlet/DispatcherServlet.properties有默认的配置

<!-- 非注解映射器之简单url映射 start -->
	<bean id="NotAnnotationController" class="com.bjx.controller.NotAnnotationController"/>
	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="/u/show">NotAnnotationController</prop>
			</props>
		</property>
	</bean>
<!-- 非注解映射器之bean start -->
	<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
	<bean name="/u/show.do" class="com.bjx.controller.NotAnnotationController"></bean>
	<!-- 非注解映射器 end -->

当使用非注解的映射器时,controller有以下两种方式可选

1、实现 Controller 【org.springframework.web.servlet.mvc.Controller】

public class NotAnnotationController implements Controller{
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		request.setAttribute("name", "nz");
		System.out.println("12311231");
		ModelAndView model=new ModelAndView();
		model.setViewName("success");
        return model;
	}
}

2、实现 HttpRequestHandler

public class NotAnnotationController  implements HttpRequestHandler{
	@Override
	public void handleRequest(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setAttribute("name", "nzdd");
		request.getRequestDispatcher("/WEB-INF/success.jsp").forward(request, response);
	}
}

以上非注解方式有一个明显的缺点:一个控制器中只能写一个方法

四、非注解方式之适配器

<!-- 非注解适配器 start -->
	<!-- <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> -->
	<!-- <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" /> -->
	<!-- 非注解适配器 end -->

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值