SpringMVC学习(一)学习SpringMVC前的一些回顾和学习

一边学习狂神Java说一边记录自己的学习经过,文章里有自己学习的理解和扩展,大部分是自己不懂又去扩展了的内容,所以和狂神自己的笔记和课程可能会有一些不一样,新手难免有理解偏差或者错误,恳请大佬指正。

MVC回顾

ssm:spring+springmvc+mybatis MVC三层架构

什么是MVC?

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

Model(模型)

数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或者JavaBean组件。一般会将其分离成Value Object(数据Dao)和服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图)

负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西

Controller(控制器)

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

SSM中常见的文件夹类型

dao

DAO(Data Access Object)是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。负责数据保存到数据库、文件、内存。使得数据与业务逻辑分离。

mapper

mapper的目的是为了把关系数据库映射成java类(对象)。因此,如果只有mapper没有dao层,那么一旦项目需要把数据保存到文件或者内存,那么调用mapper的高层就会受到影响。如果仅仅使用数据库作为数据存储,那么mapper和dao是一样的。在mybatis中,mapper就是dao的别名。

pojo

POJO(Plain Ordinary Java Object)简单的Java对象,一般放实体类。比如User、Student等等。它不依赖任何框架。放实体类的文件夹也可以叫model、entity。

service

存放业务逻辑处理,也就是一些关于数据库处理的操作,但是不直接和数据库打交道。和数据库打交道的是dao和mapper,Service调用dao或mapper来和数据库打交道。

controller

负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。文件夹也可能命名为servlet。

web

存放jsp文件

SSM中每层的作用流程图

SSM中各层的流程如下图所示:

在这里插入图片描述

Servlet简单实现web的流程

新建项目

创建一个maven项目,导入依赖:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

然后对这个项目右键,添加框架支持,选web

在这里插入图片描述

选择webApplication并且指定版本,点ok。

在这里插入图片描述

编写Servlet类

package com.hj.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.获取前端参数
        String method=req.getParameter("method");
        if (method.equals("add")){
            req.getSession().setAttribute("msg","执行了add方法");
        }
        if (method.equals("delete")){
            req.getSession().setAttribute("msg","执行了delete方法");
        }
        //2.调用业务逻辑
		//就是真正的调用业务去处理这里暂时不用,就当他已经处理了
        //3.视图跳转 重定向
        req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

在WEB-INF目录下新建我们展示的页面test.jsp

<%--
  Created by IntelliJ IDEA.
  User: hbq
  Date: 2021/5/20
  Time: 9:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
${msg}
</body>
</html>

然后在web.xml中注册这个Servlet,这样我们在/hello页面就能看到

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--配置重定向/hello-->
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.hj.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

    <!--设置15分钟就超时-->
    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>

    <!--欢迎页-->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

配置tomcat

配置tomcat,首先在项目上面找到锤子旁边的Add configuration。
在这里插入图片描述

先点击add configuration,再点+号。选择Tomcat server,然后点击OK

在这里插入图片描述

进到这里首先设置tomcat版本,这里要9的,对应jdk1.8 ,用tomcat10的话会报错。

没有下载tomcat的可以去官网下载:tomcat

然后点击fix

在这里插入图片描述

可以看到我们有一个application context,把他变成/ 就默认我们通过8080端口直接访问就可以访问到。点击tomcat9右边的播放按钮,运行!

然后浏览器输入localhost:8080/user?method=add和localhost:8080/user?method=delete就可以看到我们写的界面了。

那通过这个Servlet可以看出,MVC框架需要做以下事情:

  • 将url映射到java类或者java类的方法中去
  • 封装用户提交的数据
  • 处理请求,调用相关的业务处理,封装响应数据
  • 将响应的数据进行渲染.jsp/html等表示层数据
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值