一、历史回顾
(一)、项目的简单架构:
二、环境搭建
(一)、springMVC搭建(IDEA)(建议用这个学习)
1、查看该地址:https://www.cnblogs.com/chenlinghong/p/8339555.html
2、在idea中引入相关命名空间,可以参考:https://segmentfault.com/q/1010000003706765
(二)、springMVC搭建(Eclipse)
1、jar包引入
springMVC基础jar包:spring-aop.jar、spring-bean.jar、spring-context.jar、spring-core.jar、spring-expression.jar、spring-web.jar、spring-webmvc.jar、commons-logging.jar。
将这些jar直接拷贝到“WEB-INF”---> “lib”目录下,如下图所示:
注意:spring-***.4.x.jar以上的jar包需要的JDK的版本是1.7以上包含1.7,以下则是JDK版本是1.7以下。
2、springMVC配置文件(springmvc.xml)
Servlet --- SpringMVC
(1)、创建一个springmvc.xml文件(配置在src目录下)
(2)、引入命名空间(选中常用的命名空间:beans、aop、context、mvc)。
(3)、配置springMVC的扫描包以及视图解析器
配置有注解的包,告诉springMVC利用那个包里的处理类
配置视图解析器
最终springMVC的springmvc.xml的相关配置,如下图所示:
3、web.xml配置
a、Servlet的处理请求的方式:
jsp ---> web.xml中的
b、配置web.xml中的springMVC相关内容
如果既有Servlet又有SpringMVC怎么处理呢?
普通的Servlet流程:请求-url-parttern,然后交给对应的Servlet去处理。
如果想用SpringMVC,如何告知程序?--如何让SpringMVC介入程序,需要配置一个SpringMVC自带的Servlet。它叫DispatcherServlet(这个是SpringMVC源码)。通过名字发现,它其实就是一个Servlet。jsp发送过来的请求。
通过springMVC在web.xml以下配置信息,拦截所有请求,交给springMVC处理。如下图所示:
springMVC在web.xml中的
(a)、“/” :这里代表一切请求。
(b)、“/user”:只拦截以“/user”开头的请求
(c)、“/user/abc.do”:只拦截该请求
(d)、“.action”:只拦截以“.action”结尾的请求。这里的目的是,项目中同时兼容springMVC和Servlet。想用SpringMVC去处理就用“.action”结尾的请求,不想用SpringMVC而是想用Servlet去处理就用这种方式。
c、知识扩展
配置web.xml中的springMVC相关内容中,关于
通过查看源码文件DispatcherServlet.class文件中,寻找“contextConfigLocation”成员变量(如果没有去父类中寻找),这个成员变量是指定spring配置文件的路径。下面是源码截图:
如果不在web.xml中配置关于“contextConfigLocation”配置信息。那么通过直接启动示例项目则会报出Exception,并且告诉开发人员默认的springMVC的配置文件相关信息。如下图所示:
d、最终Web.xml的配置信息,如下图所示:
4、Controller(控制)
在src下建立一个包“com.test.springmvc”--->建立一个类“SpringHandler.java”(这里通过注解)。这里welcome方法的返回值,是与视图解析器关联的,关联的内容是“前缀” + 方法返回字符串 + “后缀”(此处是 view/success.jsp)。
5、请求、响应的jsp
(1)、请求(index.jsp)
(2)、响应(success.jsp)
三、springMVC原理
下面是针对视图解析器的简单描述。