Spring MVC通过注解@RequestMapping为控制器(处理信息的java类)指定可以处理哪些URL请求。该注解可以用在类和方法中。
过程:当一个jsp发送一个请求时,由web.xml中配置的DispatcherServlet 截获该请求,然后web.xml去寻找配置的spring的xml位置,spring去查找配置的component-scan扫描包范围,如果在扫描包中类下找到处理请求的方法(通过RequestMapping把请求映射到一个执行方法上),由该方法执行请求并响应信息,响应的信息可以被spring 截获并回显等操作。
一、web.xml和springmvc.xml的配置如下
web.xml
<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
springmvc.xml
<context:component-scan base-package="com.lzj.springmvc"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
二、测试index.jsp
<a href="springMVC/testRequestMapping">Test RequestMapping</a>
三、请求控制器
由于请求的路径为springMVC/testRequestMapping,所以应在控制器的类上映射springMVC,在控制器的方法上映射testRequestMapping。
@Controller
@RequestMapping("/springMVC")
public class TestSpringMVC {
@RequestMapping("/testRequestMapping")
public String testRequestMapping(){
System.out.println("testRequestMapping");
return "success";
}
}
执行index.jsp的请求后,由控制器处理,处理结束后会跳转到success.jsp页面,并在console中打印
testRequestMapping