文章目录
-
-
-
- 1.导包
- 2.配置web.xml
- 3.配置springmvc.xml
- 4.编写前端页面:index.jsp
- 5.编写控制类(后台)
- 6.编写跳转页面:success.jsp,error.jsp,haha.jsp
- 7.启动服务器测试
- 8.执行流程
-
-
1.导包
2.配置web.xml
配置SpringMvc的前端控制器,指定springmvc配置文件位置
<servlet>
<servlet-name>dispatcherServlet</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>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.配置springmvc.xml
在springmvc.xml中:配置自动扫描包,视图解析器
<!--自动扫描组件-->
<context:component-scan base-package="com.hh"/>
<!--配置视图解析器-->
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
4.编写前端页面:index.jsp
在没有SpringMvc之前我们需要在web.xml中去配置url-pattern
现在不需要了,只需要在控制类中使用一个注解@RequestMapping即可。
<a href="hello01">hello01</a>
<a href="hello02">hello02</a>
<a href="hello03">hello03</a>
5.编写控制类(后台)
(1) 这个类要交给IOC容器去管理,所以需要加一个@Controller注解,告诉SpringMvc这是一个处理器。
(2) 每一个方法都要有一个注解@RequestMapping,根据这个注解的路径判断执行哪个方法。
@Controller
public class HelloController {
@RequestMapping("/hello01")
public String test1(){
return "success";
}
@RequestMapping("/hello02")
public String test2(){
return "error";
}
@RequestMapping("/hello03")
public String test3(){
return "haha";
}
}
6.编写跳转页面:success.jsp,error.jsp,haha.jsp
<h3>success...</h3>
<h3>error。。。。。</h3>
<h3>haha。。。。</h3>
7.启动服务器测试
8.执行流程
- 客户端点击链接,会发送请求:
http://localhost:8080/SpringMvc_02_HelloWorld_war_exploded/hello01
- 来到Tomcat服务器
- SpringMvc的前端控制器收到所有请求
- 看看请求地址和@RequestMapping注解中标注哪个地址匹配,进而找到要执行哪个类的哪个方法
- 前端控制器找到目标处理器类和目标方法,直接利用反射执行目标方法
- 方法执行完后,会有一个返回值,SpringMvc认为这个返回值就是要去的前端页面
- 拿到方法的返回值以后,根据视图解析器进行拼串,进而得到完整的页面地址
- 拿到页面地址后,前端控制器帮我们转发到页面