SpringMVC(1)--快速入门

来源:视频教程+博客

一、概述

在三层架构中:

  • 表现层:也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 ;
  • 业务层:也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层;
  • 持久层:也就是我们是常说的 dao 层。

而MVC是表现层的设计模型,MVC的全名是Model View Controller:

  • Model(模型) :表示应用程序核心(比如数据库记录列表)
  • View(视图)显示数据(数据库记录)
  • Controller(控制器)处理输入(写入数据库记录)

最简单的的设计模型是JSP (视图)+ servlet(控制器) +javabean(模型),而SpringMVC就是一种基于MVC设计模型(注意:这里要区分设计模型和设计模式),SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架。

在ssm(Spring+SpringMVC+Mybatis)中SpringMVC处于如图位置

在这里插入图片描述

SpringMVC Struts2 的优略分析

共同点:

  • 它们都是表现层框架,都是基于 MVC 模型编写的;

  • 它们的底层都离不开原始 ServletAPI;

  • 它们处理请求的机制都是一个核心控制器。

区别:

  • Spring MVC 的入口是 Servlet,,而 Struts2 是 Filter ;

  • Spring MVC 是基于方法设计的,而 Struts2 是基于类,Struts2 每次执行都会创建一个动作类。所 以 Spring MVC 会稍微比 Struts2 快些;

  • Spring MVC 使用更加简洁,同时还支持 JSR303, 处理 ajax 的请求更方便。

二、快速入门

入门案例:访问指定页面,跳转到success.jsp页面,并在控制台打印”hello springmvc’“

1.创建maven的web工程

要创建maven的web项目工程,可以选择骨架,在选择骨架的时候有两个webapp,这里注意要选择apache下的maven中的webapp,可以看下图

在这里插入图片描述

2.添加Tomcat

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.导入相关依赖
<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>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <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>
4.配置核心的控制器

配置核心的控制器是在web.xml中配置的,就相当于配置一个Servlet

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
<!--  SpringMVC的核心控制器-->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</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>

里面有一个classpath:springmvc.xml是SpringMVC的核心配置文件,也就是说稍后需要创建springmvc.xml文件

5.创建springmvc的配置文件

由于webapp骨架没有帮我们自动创建好java和resources目录,需要我们手动创建,在idea2019.3的版本中,选择创建文件夹,idea可以自动的帮助我们创建这两个文件夹,而不需要手动的去mark directory ac

由于上面的web.xml文件中输入的springmvc.xml的文件位置为classpath,那么创建springmvc.xml文件必须要在resources的根目录下

springmvc.xml

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

    <!-- 配置spring创建容器时要扫描的包 -->
    <context:component-scan base-package="com.SpringMVCDemo"></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>
6.编写控制器类
/**
 * author by four and ten
 * create by 2020/4/7 14:54
 */
@Controller("controllerDemo1")
public class ControllerDemo1 {
    @RequestMapping("/hello")
    public String testDemo1(){
        System.out.println("hello SpringMVC");
        return "success";
    }
}

既然使用了Spring,前面也导入了Spring的jar包,那么就要将Controller类交给spring的ioc来管理,RequestMapping指定访问改servlet的路径,在springmvc.xml配置文件中,配置了一个视图解析器,将页面解析到/WEB-INF/pages/目录下的以.jsp结尾的文件中,在Controller中返回”success“,那么视图解析器会在/WEB-INF/pages/寻找success.jsp文件,如果找到那么跳转,如果没找到报404错误

7.编写success.jsp页面

上面说过,当页面访问/hello时需要跳转到success.jsp页面,那么就需要在/WEB-INF/pages/目录下创建success.jsp文件

<html>
<head>
    <title>Title</title>
</head>
<body>
    <h3>入门成功!</h3>
</body>
</html>

在这里插入图片描述

7.测试结果

启动Tomcat服务器,在浏览器上输入localhost:80/hello,跳转到ssuccess.jsp页面,并在控制台打印hello SpringMVC

在这里插入图片描述
在这里插入图片描述

发布了40 篇原创文章 · 获赞 9 · 访问量 3270

猜你喜欢

转载自blog.csdn.net/weixin_44706647/article/details/105367408