Spring web MVC的项目框架流程图如下:
通过写一个小型Demo来熟悉和深入理解Spring web MVC的流程。
项目代码下载地址
编译环境:
Intellij IDEA,tomcat
先建立一个SpringMVC web项目。
把Spring MVC和web Application勾上。
**输入项目名->next
此时会下载Spring相应的架包,网速慢,漫长等待。。。**
此时创建的项目中Spring web MVC已经提供DispatcherServlet ,HanderMapping,ViewResolver三个重要组件,具体的业务控制器和视图文件需要自己加。
Demo实现的需求是:发出一个hello.form请求,显示/WEB-INF/下的hello.jsp页面。
(WEB-INF是web应用的安全目录,web-inf文件夹在正常情况下系统是不允许外界直接访问的,因为有些页面需要接收信息显示,只是一个模板,如果直接访问就只有模板信息而没有处理结果的数据信息,但是系统可以自身进行访问,所有要使系统去访问的话就需要使用拦截控制器去接受外界命令,由控制器来转发访问请求,当然如果JSP不放在安全目录中,也可以加一个过滤器阻止对某些jsp的直接访问)
建立一个业务控制器HelloController来转发请求,再在/WEB-INF/下建立一个请求调用的hello.jsp页面。
项目目录结构如下:
先不贴代码,跟着框架流程一步一步走。
如果客户端发出一个form请求,这个请求要经过DispatcherServlet这个前置控制器,DispatcherServlet配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,分析一下web.xml文件(IDEA自动配置了,不知道其他开发工具是否也补全)
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>