01|第一课:Spring MVC环境搭建以及第一个程序

一、历史回顾

(一)、项目的简单架构:

9438859-73ea9c1074276376.jpg
项目简单架构

二、环境搭建

(一)、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”目录下,如下图所示:

9438859-bc4b7e14229958b4.jpg
springMVC所需的jar

注意: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利用那个包里的处理类

9438859-0ea0212f330d2a08.jpg
配置springMVC的扫描包

配置视图解析器

9438859-a17314422a61b1f5.jpg
配置springMVC的视图解析器

最终springMVC的springmvc.xml的相关配置,如下图所示:

9438859-cdfa8ab05a2a7955.jpg

3、web.xml配置

a、Servlet的处理请求的方式:

jsp ---> web.xml中的<url-parttern>配置请求的拦截,然后由<servlet-name>同名的<servlet>中的<servlet-class>中的java类去处理。具体处理如下图所示:

9438859-b189d74d7ef39757.jpg
web.xml的处理

b、配置web.xml中的springMVC相关内容

如果既有Servlet又有SpringMVC怎么处理呢?

普通的Servlet流程:请求-url-parttern,然后交给对应的Servlet去处理。

如果想用SpringMVC,如何告知程序?--如何让SpringMVC介入程序,需要配置一个SpringMVC自带的Servlet。它叫DispatcherServlet(这个是SpringMVC源码)。通过名字发现,它其实就是一个Servlet。jsp发送过来的请求。

通过springMVC在web.xml以下配置信息,拦截所有请求,交给springMVC处理。如下图所示:

9438859-091253cfa821d490.jpg
web.xml中关于springMVC的配置

springMVC在web.xml中的<url-pattern>配置的信息,下面就是交由springMVC处理:

(a)、“/” :这里代表一切请求。

(b)、“/user”:只拦截以“/user”开头的请求

(c)、“/user/abc.do”:只拦截该请求

(d)、“.action”:只拦截以“.action”结尾的请求。这里的目的是,项目中同时兼容springMVC和Servlet。想用SpringMVC去处理就用“.action”结尾的请求,不想用SpringMVC而是想用Servlet去处理就用这种方式。

9438859-6d4964974ad93759.jpg
servlet和springMVC处理不同的请求

c、知识扩展

配置web.xml中的springMVC相关内容中,关于<init-param>配置springmvc.xml配置信息。到底是什么原因呢?

通过查看源码文件DispatcherServlet.class文件中,寻找“contextConfigLocation”成员变量(如果没有去父类中寻找),这个成员变量是指定spring配置文件的路径。下面是源码截图:

9438859-aacdcfc8d106c335.jpg
源码类

如果不在web.xml中配置关于“contextConfigLocation”配置信息。那么通过直接启动示例项目则会报出Exception,并且告诉开发人员默认的springMVC的配置文件相关信息。如下图所示:

9438859-d91728a2808cd74b.jpg
web.xml去掉<init-param>配置信息
9438859-0591e26a17b0c6e5.jpg
默认的配置文件

d、最终Web.xml的配置信息,如下图所示:

9438859-54fcf8d7d5a1bc4b.jpg
web.xml最终配置

4、Controller(控制)

在src下建立一个包“com.test.springmvc”--->建立一个类“SpringHandler.java”(这里通过注解)。这里welcome方法的返回值,是与视图解析器关联的,关联的内容是“前缀” + 方法返回字符串 + “后缀”(此处是 view/success.jsp)。

9438859-ac6cff3d238cda37.jpg

5、请求、响应的jsp

(1)、请求(index.jsp)

9438859-788a879bf935a423.jpg
请求

(2)、响应(success.jsp)

9438859-48a46ab66727a32f.jpg
响应

三、springMVC原理

下面是针对视图解析器的简单描述。

9438859-67a8d0f8da9908b9.jpg
解释视图解析器图2

猜你喜欢

转载自blog.csdn.net/weixin_34409703/article/details/87592981