表现层框架 是Spring框架的一部分,Spring 3.0版本发布之后发布的,可以与Spring框架无缝集成,提供了很多的类和方法。

第一个SpringMVC项目

step 1: 新建一个maven项目 --> ✔ Create a single project -->  Group id 有公司的写公司域名 eg com.alibaba -->Artifact id 写项目名 --> finish

step 2: 解决报错:新建一个Dynamic Web Project --> ✔generate web.xml  -->将WEB-INF 及其下的web.xml 一并拷到 src/main/webapp下

step 3:使用maven导入spring-webmvc相关的包 在pom.xml配置如下信息:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.4.RELEASE</version>
        </dependency>
    </dependencies>

step 4:指定JDK 版本 在pom.xml配置如下信息:

<build>
    <finalName>”你的项目名“</finalName>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
                  <encoding>UTF-8</encoding>
              </configuration>
          </plugin>
      </plugins>
  </build>

然后检查 Java Resources/Libraries/JRE System Library 是否显示[JavaSE -1.8] 是的话 则配置生效 不是的话 则Update Maven Project 后继续查看JDK版本 版本改完后 下边Maven Dependencies 下会出现相关jar包

step 5:在 web.xml 中配置一个 servlet 如下:

 <!-- 注册Spring MVC的中央控制器 -->
  <servlet>
      <servlet-name>springMVC</servlet-name>
      <!-- spring MVC最核心的中央控制器 -->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
          <servlet-name>springMVC</servlet-name>
          <url-pattern>*.do</url-pattern>
  </servlet-mapping>

长按 Ctrl 将光标移至<servlet-class>上 出现超链接 可查看源码 说明配置正确

url-pattern        配置成*.do:不成文的框架规范 还可配成 *.action 或者 / --可能会有问题(静态资源也会被拦截到)

DispatcherServlet回去配置文件xx.xml中去读取<bean>标签内容 把id对应请求 交给class对应Dispatcher去处理

step 6: 在Java Resources /src/main/resoures下面创建spingmvc配置文件 xxx.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

 

    <bean id="/hello.do" class="com.xxx.controller.HelloSpringMVC"/>
</beans>

step 7:在web.xml 中在servelt标签里 告诉springmvc 它的配置文件是什么 :

    <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
      </init-param>

param-name 固定写法    因为 DispatcherServlet继承了FrameworkServlet,FrameworkServlet有一成员变量名字就是contextConfigLocation

param-value指定配置文件路径

step 8 :在Java Resources /src/main/java 下创建一个Controller 类实现接口 Controller-org.springframework.web.servlet.mvc

创建ModelAndView 对象--> 调用其addObject()方法-->调用其setViewName()方法   ( 指定跳转路径)

step 9 :在springmvc的配置文件xxx.xml 中添加如下代码:

<bean id="/hello.do" class="com.xxx.controller.HelloSpringMVC"/>

id-->指定对应请求

step 10:在src/main/webapp/WEB-INF下创建jsp文件夹,在其下创建jsp文件

然后就可以部署运行第一个Spring MVC项目了! 

  note:在有多个servlet的配置文件中,无法控制中央控制器DispatcherServlet的加载顺序,在使用springmvc时就可能出现问题,为了保证其最先加载需要在web.xml的servlet标签添加:

    <!-- 保证中央控制器被加载的级别是最高的 -->
      <load-on-startup>1</load-on-startup>

 为了避免多个Controller配置问题 可以使用视图解析器来解决 在xxx.xml中添加如下代码:

<!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

 程序执行流程:

用户发送浏览器请求-->浏览器根据请求url 读取web.xml配置文件找到对应DispactherServlet-->DispactherServle去xxx.xml中找到与其对应的Controller-->Controller对其进行处理:调用handleRequest方法,方法返回结果会返回给DispactherServle-->DispactherServle拿到跳转到的jsp-->DispactherServle根据视图解析器拿到路径名及后缀名-并将其返回给浏览器

posted on 2019-03-02 17:08  冷乐飒  阅读(159)  评论(0编辑  收藏  举报