SpringMVC学习(一)

SpringMVC简介

MVC:

  • MVC是模型(Model)是视图(Views)控制层(Controller)的缩写,是一种软件设计规范;
  • 是将业务逻辑、数据、显示分离的方法来组织代码;
  • MVC主要作用是降低了视图于业务逻辑键的双向耦合
  • MVC不是一种设计模式,MVC是一种架构模式。

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为。就是Dao层和Service层

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责显示。

SpringMVC的特点:

  • 轻量级、简单易学
  • 高效、基于请求响应的MVC框架
  • 与Spring兼容性好,无缝结合
  • 约定由于配置
  • 功能强大

Spring的web框架围绕DispatcherServlet[调度Servlet]设计。

中心控制器

Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器。我们可以采用基于注解的controller声明开发,十分简洁;

Spring MVC框架像许多其他MVC框架一样,**以请求为驱动,围绕一个中心Servlet分派请求及提供其他功能,DispatcherServlet是一个实际的Servlet(继承自HttpServlet基类)

SpringMVC的原理如下图所使:

当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应給中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者。

SpringMVC第一个程序

创建maven项目

1、导入依赖

导入webmvc,idea会自动导入相应的依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.1.RELEASE</version>
        </dependency>
    </dependencies>

对应的依赖:

2、编写web.xml

    <!--主注册DispatcherServlet-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--关联一个SpringMVC的配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!--服务器启动的时候就启动-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--
        /  匹配所有的请求  不包括.jsp
        /*  匹配所有的请求  包括.jsp
    -->
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

3、编写springmvc的配置文件

<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <!--扫描包配置,控制层,和前端交互 controller-->
    <context:component-scan base-package="com.star.controller"/>
    <!--开启注解扫描-->
    <mvc:annotation-driven/>
    <!--在web开发中,我们一般存在静态资源css,js,img。。。-->
    <mvc:default-servlet-handler/>

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

</beans>

4、编写前端页面

在WEB-INF下创建views目录,创建hello.jsp页面;

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello</title>
</head>
<body>
<%--使用el表达式获取传入的参数--%>
<h1>${msg}</h1>

</body>
</html>

5、测试前后端交互

package com.star.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller //控制层
public class HelloController {

    @RequestMapping("/hello") //请求的映射路径
    public String hello(Model model){
        model.addAttribute("msg","Hello,SpringMVC");//使用model给前端传入参数
        //拼接成:/WEB-INF/views/hello.jsp
        return "hello";
    }
}

配置tomcat,启动项目,输入路径:

注意:要在IDEA的项目发布中,添加lib依赖!

posted @ 2020-03-15 16:39  陌星灬  阅读(209)  评论(0编辑  收藏  举报