Spring MVC介绍

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内部的加载机制还是很复杂的,我们用简图介绍下:

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

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

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

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

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

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

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

  

原文地址:https://www.cnblogs.com/lyle-liu/p/12542221.html