Java学习笔记-全栈-web开发-08-MVC设计模式

2021-08-18 15:28:16 浏览数 (1)

教学视频涉及到一些jsp页面代码,但由于jsp基本已被模板引擎所取代,所以本专栏没有jsp相关详解。 尽管如此,读者可自行选择学习使用jsp,因为模板引擎的使用跟jsp大同小异。


重点总结(初学者先看完下面再回头来看这个): 1: MVC模式将web应用进行分层,实现功能上的部分解耦,提高开发效率,能够使初学者更加清晰的认识web。

2: Model:数据的Javabean Dao层:对数据的增删改查,面向数据库 Service:对业务的数据操作,如注册、登录、查找 servlet:通过操纵service与浏览器进行交互

3: 以本节实验(登录注册)为例,博主习惯按以下方式进行设计:

  • 考虑所需model,需要一个用户User,包含username,password等信息。
  • 登录注册涉及到user的“按用户名和密码进行比对”,“按所输入信息增加用户”,因此Dao层包含
    • “按用户名和密码进行查找”
    • “按用户名、密码等信息进行插入”
  • 所需功能为“登录”“注册”,因此编写登录Service和注册Service
  • 编写处理登录的servlet

1. 软件的MVC设计

1.1 软件开发模式

  • C/S:客户端 / 服务器 (胖客户端)
    • 大部分处理在客户端执行,服务器压力很小,对客户端要求很高
  • B/S:浏览器 / 服务器 (瘦客户端)
    • 客户端(浏览器)只做用户界面交互显示和部分数据处理,服务端做业务逻辑和数据处理,对客户端要求很低

随着大前端的潮流,逐渐向胖客户端发展(前端逐渐担任更多的任务)

1.2 JavaBean概念

Bean,豆荚,外层包裹着一粒粒豆子。 这些豆子就形象的比喻着数据字段,通过一层“外衣”包装着数据。

一般包含:

  • 一个无参构造
  • 私有属性
  • 公共的getter和setter方法

1.3 MVC设计

M:model模型(Javabean) V:View视图(页面) C:Controller控制器(Servlet)

model封装数据

view展示渲染页面

controller进行交互

1.4 分层思想(重要)

Web层(表示层) Servlet层(业务层) Dao层(数据层)

2. 实验:登录注册

1.数据层Dao

  • (1)数据库准备
  • (2)model准备
  • (3)Dao准备对应model的CRUD(增删改查)接口及其实现

2.业务层Service

  • (1)准备需要使用model CRUD的业务的接口及其实现(比如登录注册业务,用到model的CR)

3.表示层Web

  • (1)写好主页(包含登录、注册链接)
  • (2)写好登录、注册、登录成功、注册成功页面

4.控制层servlet

  • (1)Servlet从页面获取表单数据,映射为model,然后调用model的注册/登录业务,根据调用结果进行页面跳转

2.1 项目准备

2.1.1 数据库和表

代码语言:javascript复制
CREATE DATABASE test
CREATE TABLE t_user(
	id INT PRIMARY KEY AUTO_INCREMENT,
	username VARCHAR(50) NOT NULL,
	password VARCHAR(50),
  email VARCHAR(50),
	birthday DATE
)

INSERT INTO t_user(username,password,email,birthday) 
VALUES('admin','123','admin@qq.com','1999-09-11');
INSERT INTO t_user(username,password,email,birthday) 
VALUES('sxuer','123','sxuer@qq.com','1999-09-11');

2.1.2 导入所需包

  • commos-beanutils
  • commons-logging
  • mysql-connector-java-x.x.x-bin

版本自行选择,可在maven仓库下载

2.2 项目结构

  • dao 接口
  • dao.impl 接口实现
  • model 模型类
  • service 业务接口
  • serviceimpl 业务接口实现
  • utils 工具类
  • servlet 控制器

为什么dao和service需要接口和接口实现? 方便复用、方便拓展。

2.3 编写页面

登录、注册按钮通过href跳转到对应页面


注册、登录表单提交到对应servlet

2.4 model

model

2.5 Dao

Dao接口

Dao实现

2.6 Service

Service接口

Service实现

2.7 注册Servlet

2.8 登录Servlet

main.jsp

0 人点赞