基于MVC模式和分层模式完成登录和注册

一.概念(MVC)

1.什么是 mvc ?

MVC模式是 软件工程 中的一种 软件架构 模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

View:视图,为用户提供使用界面,与用户直接进行交互。
Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类: 一类称为数据承载 Bean:实体类,专门用户承载业务数据的,如 Student、User 等 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理用户提交请求的。
Controller:控制器,用于将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应。

 2.MVC 架构程序的工作流程:
(1)用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX             请求等
(2)服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对             用户请求进行处理
(3)Model 处理后,将处理结果再交给 Controller
(4)Controller 在接到处理结果后,根据处理结果找到要作为向客户端发回的响应               View 页面。页面经渲染(数据填充)后,再发送给客户端。

3.优点:关注前后端分离
4.缺点:模型层分层太粗,融合了数据处理、业务处理等所有的功能。核心的复杂业务逻辑都放到                模型层,导致模型层很乱
5.适应场景:后端业务逻辑简单的服务,比如接口直接提供对数据库增删改查

一.概念(分层)

1.为什么分层 ?

1)分层架构是将软件模块按照水平切分的方式分成多个层,一个系统由多层组成,每层由多个模块组成。同时,每层有自己独立的职责,多个层次协同提供完整的功能。

2)如果系统没有分层,当业务规模增加或流量增大时我们只能针对整体系统来做扩展。分层之后可以很方便的把一些模块抽离出来,独立成一个系统。

2.特点

  • 高内聚:分层的设计可以简化系统设计,让不同的层专注做某一模块的事
  • 低耦合:层与层之间通过接口或API来交互,依赖方不用知道被依赖方的细节
  • 复用:分层之后可以做到很高的复用
  • 扩展性:分层架构可以让我们更容易做横向扩展

3.后端三层架构

三层架构是指:视图层 View、服务层 Service,与持久层 Dao。它们分别完成不同的功能。
View 层:用于接收用户提交请求的代码在这里编写。
Service 层:系统的业务逻辑主要在这里完成。
Dao 层:直接操作数据库的代码在这里编写。

优点:逻辑与数据层分离
缺点:模型层分层比较粗,核心的复杂业务逻辑都放到模型层,导致模型层很乱
适应场景:后端业务逻辑简单的服务,比如接口直接提供对数据库增删改查

二.jstl标签和EL标签

JSTL

1.JSTL是Java中的一个定制标记库集。JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

2.jstl标签:在页面导入jstl的核心类库

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

3.为什么使用 ?

1)实现了JSP页面的代码复用。

2)书写JSP页面时可读性更强。

3)在应用程序服务器之间提供了一致的接口,最大程度地提高了WEB应用在各应用服务器之间的移植。

4)简化了JSP和WEB应用程序的开发。

EL

1.概念

 EL 表达式的全称:Expression Language 表达式语言。

 EL 是 JSP 内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象,取得对象属性的值,或执行简单的运算或判断操作。

2.作用

1)EL表达式主要是替换和简化 jsp 页面中表达式脚本在jsp页面中进行数据的输出。

2)EL 表达式仅仅用来读取数据,而不能第数据进行修改。

3.特点

1)EL 在得到某个数据时,会自动进行数据类型的转换

2)EL 表达式输出数据时,如果有则输出数据,如果为 null 则什么也不输出。

4.语法格式

${表达式}

5.注意事项:

1)jsp 默认是支持 el 表达式的。

2)如果要忽略 el 表达式,有两种方式

3)设置 jsp 中 page 指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式

4)\${表达式}:这种方式忽略当前这个 el 表达式,会在当前页面呈现原有格式。

 

二.代码

1.书写数据库

#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;


#创建表
create table t_user
(
	uid int primary key auto_increment,
	username varchar(20),
	password varchar(20),
	phone varchar(11),
	address varchar(50)
);


insert into t_user(username,password,phone,address) values('熊大','666','18965423548','树洞');
insert into t_user(username,password,phone,address) values('熊二','333','18754263548','树洞');
insert into t_user(username,password,phone,address) values('光头强','123','18565234759','木屋');

select * from t_user where username=? and password=?
select * from t_user;


create table t_goods
(
	gid int primary key auto_increment,
	gname varchar(20),
	price double,
	mark varchar(100)
);

insert into t_goods(gname
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值