web三层架构

Posted 赤诚&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web三层架构相关的知识,希望对你有一定的参考价值。

哈喽,大家好,今天我们一起来学习一下“三层架构”吧

目录

一,什么是三层架构

  1. 表示层 :主要是指与用户交互的界面,用于接收用户输入的数据和显示处理后用户需要的数据
  2. 业务逻辑层 :表示层和数据库访问层之间的桥梁,实现业务逻辑,具体包含:验证、计算、业务规则等等
  3. 数据访问层 :与数据库打交道,主要实现对数据的增、删、改、查

    除了以上的三层外,还有一层是 entity层 :实体层

二,三层架构的特点

表示层就相当于服务员,专门和用户打交道,获取用户的操作
业务逻辑层就相当于厨师,从数据访问层拿来数据,根据表示层传来的用户操作去执行操作
数据访问层就相当于采购员,用户需要什么数据,就从数据库或是文件中拿来此数据,交给业务逻辑

三,为什么要用三层架构

用三层架构的目的就是为了实现 高内聚低耦合 的思想:
高内聚 :尽可能类的每个成员方法只完成一件事
低耦合 :减少类内部,一个成员方法调用另一个成员方法
从类角度来看, 高内聚低耦合:减少类内部,对其他类的调用
从功能块来看, 高内聚低耦合:减少模块之间的交互复杂度
简单来说,就是 解耦 :只做自己功能内的事

分层模式是最常见的一种架构模式
分层模式是很多架构模式的基础

分层
将解决方案的组件分隔到不同的层中 在同一个层中组件之间保持内聚性 层与层之间保持松耦合

面向接口编程:
设计与实现分开
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个
对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系
统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,
这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。

四,实现的方式



完成的目录结构(样式):

五,使用分层实现用户登录功能

数据是小编写死的,需要自己改
分析:

  1. 创建用户实体类
public class User 
    	private int id;
    	private String username;
    	private String password;
   	public int getId() 
         	return id;
    	
    	public void setId(int id) 
        		this.id = id;
    	
    	…省略了后续的set/get方法

  1. 编写数据访问层
    数据接口:
public interface UserDao 
    	//根据用户进行查找,返回用户列表
    	public boolean findUser(User user);

数据访问接口的实现

public class UserDaoJdbcImpl implements UserDao
public boolean findUser(User user)
    	Connection con = null;
    	PreparedStatement pStatement = null;
    	ResultSet res = null;
    	/** 调用创建数据库连接的方法 获得连接,实现用户名和密码查询*/

  1. 编写业务逻辑层
    编写业务逻辑层接口
//编写业务逻辑控制接口UserBiz
public interface UserBiz 
     	public boolean login(User user);

编写业务逻辑层接口实现

public class UserBizImpl implements UserBiz
    	public List login(User user)
        		UserDao ud = new UserDaoJdbcImpl();
        		boolean flag = ud.findUser(user);
        		return flag;
    	

  1. 编写表示层
<%@page import="org.jbit.bean.*" %>
<%@page import="org.jbit.biz.*" %>
<%@page import="org.jbit.biz.impl.*" %>
<%
    String uname=request.getParameter("user");
    String upwd=request.getParameter("pwd");
    User user = new User();
    user.setUsername(uname);
    user.setPassword(upwd);
    UserBiz ub = new UserBizImpl();
    boolean flag = ub.login(user);
    if(flag)
        response.sendRedirect("welcome.jsp");	
    else
        response.sendRedirect("login.jsp");
%>

到这里就结束了,希望你能对你有用,记得给小编个赞!!!

在ASP.NET中,三层架构,Web ,BLL,DAL,Models这四个的引用关系是?

BLL 就是业务逻辑层 他只负责向数据提供者也就是DAL调用数据 然后传递给 客户程序也就是UI
DAL就是数据访问层 ,负责 对实体也就是数据库相应表的增删改查
Model: 实体层数据库中表的映射,一般有几个表就有几个实体类
web:(Web)网站项目在程序中调用BLL,BLL中调用DAL
参考技术A DAL->BLL->Web
↘ ↓ ↙
Models

箭头指向为被引用
参考技术B WEB应用BLL
BLL应用DAL
BLL应用Models
DAL应用Models
WEB应用Models
Models是一个数据传递层 简而言之就是所有层都引用它
参考技术C 实体层Models被数据层DAL引用,DAL被逻辑层BLL引用,BLL被表示层Web网页引用 参考技术D dal是数据库交互
bll是业务逻辑层
web就是我们的网页
model是元数据,model在所有层中用到。 其他别人又说,我不说了。

以上是关于web三层架构的主要内容,如果未能解决你的问题,请参考以下文章

狂神Java Web MVC三层架构

浅谈Java Web经典三层架构和MVC框架模式

JAVA三层架构里面的main方法写在哪里?有main方法吗

java里分的三层到底是哪三层?

Web开发之三层架构

WEB三层架构与MVC