1.通过url对应bean(通过ur直接找到对应的name或id的bean,此时url即为bean的name或id)
<!--配置handlerMapping--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean id="/hello.do" class="com.app.controller.HelloController"/>
以上配置,访问hello.do就会寻找ID为/hello.do的bean,此方式只适合小型的应用。
2.为url分配bean(通过url找到对应的beanName,再通过beanName找到对应的bean)
<!--配置handlerMapping--> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!--key对应url请求名 value对应处理器的id--> <prop key="/hello.do">helloController</prop> </props> </property> </bean> <bean id="helloController" class="com.app.controller.HelloController"/>
此类配置可以使用通配符,访问/hello.do时,spring会把请求分配响应的处理器处理,如果将key值改为*.do(通配符),那么所有.do结尾的请求都将被helloController处理。
3.url配置bean
<!--配置handlerMapping--> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean id="helloController" class="com.app.controller.HelloController"/>
以上配置,访问hello*.do会分配给helloController执行
<!--配置handlerMapping--> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean id="helloController" class="com.app.controller.HelloControlleController"/>
以上配置,访问hellocontroller*.do会分配给helloController执行
<!--配置handlerMapping--> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean id="helloController" class="com.app.controller.HelloControlleControll"/>
以上配置,访问hellocontrollercontroll*.do会分配给helloController执行
通过以上实验可以肯定,这个链接是通过Controller的name即java文件名称来确定,而不是bean的name来确定,如果java文件名称中最后是一controller结尾的,那么链接将会是除去结尾的controller的剩余部分的小写为开头的,如果文件不是以controller结尾,那么将是全部名称的小写开头的链接。
4.注解
springmvc.xml
<context:component-scan base-package="com.app.web"/>
java代码
@Controller public class HelloController{ @RequestMapping("/hello") public ModelAndView hello(HttpServletRequest request, HttpServletResponse response){ ModelAndView modelAndView = new ModelAndView(); //封装要显示到视图中的数据 modelAndView.addObject("msg","Hello SpringMvc"); //试图名称 modelAndView.setViewName("hello"); // /WEB-INF/jsp/hello.jsp return modelAndView; } }