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

教学视频涉及到一些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 数据库和表

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值