spring mvc是java流行框架中web层的框架,是一款轻量级的开发框架,简单易学,在企业开发中使用几乎成为了不可不用的技术。

在开发中一般分为三层:

  web层,也称表现层:

    主要负责的任务有三项:

      获取前端传过来的请求参数;

      调用业务(service)处理前端的请求;

      将处理结果返回给前端;

  service层,也称为业务层:

    主要作用有两项:

      调用Dao层查询数据库;

      处理复杂业务;

  Dao层,也称为持久层:

    主要作用是:

      查询数据库,返回数据到service层

在企业中,web层使用的技术大部分都是spring mvc。由此可见其重要程度。下面我们来开始spring mvc的入门。

需求:

  浏览器请求服务器(SpringMVC), 响应成功页面

步骤:

  1.创建Maven工程(war),导入坐标

  2.创建Controller类,创建一个方法, 添加注解

  3.创建springmvc.xml(包扫描, 注册视图解析器)

  4.配置web.xml

1.创建maven工程,在pom文件中导入如下依赖:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>

  <spring.version>5.0.2.RELEASE</spring.version>
</properties>

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
  </dependency>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
  </dependency>

  <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

2.创建Controller类,创建一个方法, 添加注解

package com.it.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * ToDo
 *
 * @author Lyle
 * spring mvc入门
 */
@Controller
public class HelloController {
    @RequestMapping("/hello")
    public String sayHello(){
        System.out.println("HelloController 的 sayHello 方法执行了。。。。 ");
        return "success";
    }
}

3.创建springmvc.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:context="http://www.springframework.org/schema/context"
       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">

    <context:component-scan base-package="com.it"></context:component-scan>
    <!--注册视图解析器-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

</beans>
4.在web容器中配置前端控制器,并加载spring mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">


  <display-name>Archetype Created Web Application</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocationt</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>
</web-app>

以上,就是spring mvc的简单入门,当然,spring mvc内部的加载机制还是很复杂的,我们用简图介绍下:

基于java的持久层框架实现 springmvc持久层框架_xml

 

 

第1步:前端发送请求:http://localhost:8080/hello到后台;

第2步:前端控制器DispatcherServlet收到请求后,找到对应的Controller类和对应的方法;

第3步:Controller类中对应的方法处理后返回success给前端控制器;

第4步:前端控制器将success交给视图解析器进行处理,通过添加前后缀转成物理视图;

第5步:视图解析器将物理视图返回给前端控制器;

 第6步:前端控制器将接收到的物理视图响应给前端。

以上是spring mvc的简易原理。当然,真正的响应过程远比这个要复杂的多,为了便于初学者理解,这里省略了很多组件。