栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC基础学习之简单回顾MVC架构和Servlet的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC基础学习之简单回顾MVC架构和Servlet的使用

前言:

小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师。

这个SpringMVC基础学习系列是用来记录我学习SpringMVC框架基础知识的全过程 (这个系列是参照B站狂神的SpringMVC最新教程来写的,由于是之前整理的,但当时没有发布出来,所以有些地方可能有错误,希望大家能够及时指正!)


之后我将尽量以两天一更的速度更新这个系列,还没有学习SpringMVC框架的小伙伴可以参照我的博客学习一下;当然学习过的小伙伴,也可以顺便跟我一起复习一下基础。最后,希望能够和大家一同进步吧,加油吧,编程人!

今天我们来到了SpringMVC基础学习的第一站:简单回顾MVC架构和Servlet的使用。废话不多说,让我们开始今天的学习内容吧。

1.Spring MVC 学习 1.1 知识回顾
  • SSMMyBatis + Spring + SpringMVC (延续了MVC三层架构思想)

  • JavaSE:认真学习,老师带,入门快

  • JavaWeb:认真学习,老师带,入门快

  • SSM框架:研究官方文档,锻炼自学能力,锻炼笔记能力,锻炼项目能力

  • SpringMVC + Vue - + SpringBoot + SpringCloud + Linux

  • SSM 整合:JavaWeb做项目

  • SpringIOC(控制反转) 和 AOP(面向切面编程)

  • SpringMVCSpringMVC的执行流程 (面试可能会问到)

  • SpringMVCSSM框架整合

1.2 简单回顾MVC架构 1.2.1 什么是MVC?
  • MVC模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范
  • 是将业务逻辑数据显示分离的方式来组织代码
  • MVC主要作用是降低了视图与业务逻辑间的双向耦合
  • MVC不是一种设计模式,而是一种架构模式,当然不同的MVC存在差异

简单来说,所谓MVC就是Model 模型(包括Pojo、Dao和Service,即数据和业务)+ View 视图(JSP/HTML,展示数据)+ Controller 控制器(Servle,获取请求和返回响应)

1.2.2 了解MVC各层

Model(模型):数据模型提供要展示的数据,包含数据和行为,可以认为是领域模型JavaBean组件(包含数据和行为)。不过一般都分开来写:数据Dao层(Value Object)和服务层(行为Service),也就是模型提供了模型数据查询模型数据的状态更新等功能,包括数据和业务

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

Controller(控制器):接收用户请求委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示,也就是控制器做了个调度员的工作

  • Dao和Service
  • Servlet:转发和重定向
  • JSP/HTML

最典型的MVC就是JSP + Servlet + JavaBean的模式

1.2.3 MVC执行流程图

1.2.4 知识扩充

例如有个User实体类:该实体类有用户名,密码,生日,爱好 … 等20个字段,而前端需要用户名和密码字段的数据

  • 前端:进行数据传输 (传递实体类的数据)
  • PojoUser实体类
  • VoUserVo(用户视图对象)比如只写两个字段:用户名和密码,然后传给前端 (相当于将实体类进行了细分,本质上还是实体类对象)
  • DtoUserDto (用户数据传输对象) 数据传输目标往往是Dao(数据访问对象)从数据库中检索数据
1.2.5 Model模型的发展 1.简单了解Model1时代 1-1 Model1基本概念
  • 在web早期的开发中,通常采用的都是Model1,而在Model1中,主要分为两层,视图层模型层

1-2 Model1的优缺点

Model1优点:架构简单,只有模型层视图层,比较适合小型项目开发

Model1缺点:JSP职责不单一,相当于即担任控制层,又担任视图层不便于维护

注意::JSP本质上就是一个Servlet

2.简单了解Model2时代 2-1 Model2基本概念

Model2把一个项目分成三部分,包括视图控制模型

职责分析:

Controller控制器

  • 取得表单数据
  • 调用业务逻辑
  • 转向指定的页面

Model模型

  • 业务逻辑
  • 保存数据的状态

View视图

  • 显示页面
2-2 Model2与Model1区别

Model1:

  • Model1模式实现比较简单,适用于快速开发小规模项目
  • Model1JSP页面身兼ViewController两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的可读性非常差

Model2:

  • Model2不仅提高了代码的复用率项目的扩展性,且大大降低了项目的维护成本
  • 增加了应用的扩展性维护的难度Model2消除了Model1的缺点
2-4 MVC和MVVM区别

MVC:MModel (模型层) ; VView (视图层); CController (控制层)

MVVM:MModel (模型层) ;VView (视图层) ;VMViewModel(视图模型层),即双向数据绑定

3.知识扩充

面试常见问题:

问:你的项目的架构是设计好的,还是演进的?

答:

项目架构是演进的,因为没有任何一个项目可以一开始就设计很好的架构,底层架构都是在不断的进行演变的,包括像阿里这样的大公司也不例外

  • Alibaba 刚开始使用PHP,一般用于个人页面网站,但是当并发量成百上千万时就会存在问题了
  • 随着用户数量增加,无奈转向Java
  • 王坚 提出要去IOE,即不使用IBM和Orcale的企业软件服务,然后就是使用MySQL数据库
  • MySQL:MySQL是一个开源小巧,可拔插,组件化的数据库,SQL底层其实还有一层架构,阿里经过修改,将MySQL更新为了AliSQL以及AliRedis
  • All in one —> 微服务
1.3 简单回顾Servlet 1.3.1 搭建基本环境 1.创建项目工程和导入资源依赖 1-1 创建Maven项目
  • 创建一个普通的Maven项目,其他都不需要勾选

1-2 导入资源依赖
  • 在项目的pom.xml配置文件中导入相关的资源依赖

    
    
        org.springframework
        spring-webmvc
        5.2.4.RELEASE
    
    
    
        javax.servlet
        servlet-api
        2.5
    
    
    
        javax.servlet.jsp
        jsp-api
        2.2
    
    
    
        javax.servlet
        jstl
        1.2
    
    
    
        junit
        junit
        4.12
        test
    

1-3 删除父项目的src文件

2.创建子项目和导入资源依赖 2-1 创建Module子项目
  • 右击父工程名字,点击【New】新建,然后选择【Module】模块

2-2 创建普通Maven项目
  • 与父工程相同,子模块还是选择创建一个普通的Maven项目,不用勾选任何选项,然后给子项目起名字就可以了

2-3 导入资源依赖
  • 子项目的pom.xml配置文件中引入相关的资源jar包

    
    
        javax.servlet
        servlet-api
        2.5
    
    
    
        javax.servlet.jsp
        jsp-api
        2.2
    

3.解决src目录下的java文件变灰问题 2-1 查看src文件目录下的java文件
  • 点开src文件目录下的main文件,发现main文件下的java文件是灰色的

2-2 添加项目支持
  • 右击项目名称,选择【Add framework Support…】,即添加项目支持

2-3 勾选Web Application
  • 进入【Add framework Support…】界面,接着勾选JavaEE目录下的【Web Application】

2-4 再次查看src文件下的java文件
  • 再次查看src文件目录下的main文件,发现main文件下的java文件已经变为蓝色了,然后也添加了web文件夹,并且web文件上有个蓝点

1.3.2 编写控制层Servlet和web.xml配置文件 1.编写控制层HelloServlet
  • src目录下的main文件下的java文件下,创建一个com.kuang.cotoller包,来存放控制层的HelloServlet类
package com.kuang.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 {
        
        
        String method =req.getParameter("method");
        // 判断调用的请求是add方法还是delete方法
        if(method.equals("add")) {
            // 执行add方法
            req.getSession().setAttribute("msg","执行了add方法");
        }
        if(method.equals("delete")) {
            // 执行delete方法
            req.getSession().setAttribute("msg","执行了delete方法");
        }
        
       
        
        
        // 1.3.1 使用转发请求
        req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);
        // 1.3.2 或者使用重定向
//        resp.sendRedirect();
    }
    
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
    
}
2.编写web.xml配置文件
  • 找到web目录下的WEB-INF文件下的web.xml配置文件,进行servlet以及映射的相关配置


    
    
        hello
        com.kuang.servlet.HelloServlet
    
    
    
        hello
        
        /hello
    
    
   
        
        15
    
    
    
         
        index.jsp
    

1.3.3 编写视图层JSP页面
  • web文件夹下的WEB-INF文件下,创建一个jsp文件夹,用来存放视图层的相关页面文件
1.编写test.jsp测试页面
  • 用来展示Servlet调用方法后的信息
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


${msg}


2.编写form.jsp表单页面
  • 用来进行提交数据信息表单页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


1.3.4 配置TomCat服务器 1-1 编辑配置信息
  • 点击IDEA编译器左上方的工具栏图形一行,找到那个锤子图标的后面,点击选择【Add Configurations】,因为我已经配置过了,所以这里显示的是【Edit Configurations】

1-2 添加Tomcat服务器
  • 点击左上角的“+”号,即添加新配置,找到选项中的【Tomcat Server】即Tomcat服务器,然后选择【Local】,即使用本地的Tomcat

1-3 配置Tomcat服务器信息
  • 添加本地的Tomcat服务器后,接着进行Tomcat服务器的相关信息配置,找到【Server】下的【Application server】,点击后面的【Configure…】

  • 然后进行【Tomcat Home】的信息配置,找到本地的Tomcat文件位置,然后IDEA会进行自动识别Tomcat版本信息

  • 再次回到【Server】页面后,会发现HTTP portJMX port已经自动匹配了,Tomcat默认端口号正常情况下是8080,但这里本地的Tomcat服务器端口号被我修改了,所以显示是8888

1-4 设置发布项目信息
  • 【Deployment】下点击右侧的“+”号,选择【Artifact…】

  • 然后添加发布项目信息,最后点击右下角的【Apply】应用此配置

1.3.5 测试结果 1.启动Tomcat服务器

2.打开默认页面
  • 启动Tomcat服务器后,会自动跳转到默认的index.jsp欢迎页面

3.调用add方法
  • 原本默认的URL链接后面加上hello?method=add后,即http://localhost:8888/springmvc_01_servlet_war_exploded/hello?method=add,会跳转到test.jsp页面,然后页面会显示调用对应方法的信息

4.调用delete方法
  • 原本默认的URL链接后面加上hello?method=delete,即http://localhost:8888/springmvc_01_servlet_war_exploded/hello?method=delete,会跳转到test.jsp页面,然后页面会显示调用对应方法的信息


好了,今天的有关 简单回顾MVC架构和Servlet的使用 的学习就到此结束啦。欢迎小伙伴们积极学习和讨论,喜欢的可以给蜗牛君点个关注,顺便来个一键三连。我们下期见,拜拜啦!


参考视频链接:【狂神说Java】SpringMVC最新教程IDEA版通俗易懂

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/389602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号