一.软件分层模式

1.为什么需要分层

 业务处理的代码与JSP代码混在一起,不易于阅读,不易于代码维护,采用三层软件设计架构后,软件系统在可扩展性和可复用性方面得到极大提高,

2.软件设计中的分层模式

分层模式是最常见的一种架构模式;甚至可以说分层模式是很多架构模式的基础。

3.分层

    ①分层模式是将解决方案的组件分隔不同的层中(分工合作,细化)
    ②每一层的组件应保持内聚性(部门之间常联系)
    ③每一层都应与其下面的各层保持松耦合

4.三层架构:表示层、业务逻辑层、数据访问层

    ①表示层:位于最外层 ( 最上层 ),使用户能够直接访问,用于显示数据和接收用户输入的数据,为用户提供一种交互式操作界面。在 Web 应用程      序中,表示层一般以 JSP 文件、HTML文件为主;

②业务逻辑层:其主要功能是提供对业务逻辑处理的封装,在业务逻辑层中,通常会定义些接口,表示层通过调用业务逻辑层的接口实现各种操作,      如数据有效性的检验. 业务辑描述等相关功能,业务逻辑层经常放在 service 包或 biz 包下,btz 是英文 buslness 的缩写,意思是 '业务逻      辑";

③数据访问层:该层实现对数据的保存和读取操作。数据访问,可以访问关系数椐库、文件或 XML 文档等。数据访问层通常放在 dao 包下,DAO 是      英文 Data Access Object 的缩写,意思是 "数据访问对象 ";

5.分层的实现

   S1阶段:实体包,工具包,dao包,ui包;

   S2阶段:数据访问层(DAO)、业务逻辑层(BIZ|SERVICES)、表示层(jsp)、实体包。

代码案例:

1. 表示层 jsp+html;

<form action ="doLogin.jsp" method = "post">
		账户: <input type = "text" name = "username"/>
		<br><br>
		密码:  <input type = "password" name = "password"/>
		<br><br>
		<input type = "submit" value = "登录"/>
	
	
	</form>

2. 业务逻辑层 biz/service;

private IUserDao iud = new UsersDaoImpl();

	@Override
	public Users usersLogin(Users users) {
		
		
		return iud.usersLogin(users);
	}

3. 数据库访问层 dao(访问数据库、文本文件、XML文件)。

public Users usersLogin(Users users) {
		Users u = null;//存储数据库中返出来的用户实体
		//用户登录的sql语句
		String sql = "select * from tb_t281_news_users where username = ? and password = ?";
		//调用Basedao中的通用查询方法  返回一个结果集对象
		ResultSet rs = this.executeQuery(sql, new Object[] {
				users.getUsername(),
				users.getPassword()
		});
		try {
			//判断结果集是否存在记录
			if(rs.next()) {//存在记录
				u = new Users(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getInt(7), rs.getString(8));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(conn, ps, rs);
		}
		return u;
	}

Entity实体类不属于某层,三层都可以调用,主要用于封装数据。

JSP:收集、展示数据;

JSP/servlet:处理数据,访问service;

Service:业务逻辑;
Dao:基本操作,不带业务逻辑(增删改查);

Database:数据库。

图片解释:

java三层架构登陆 java三层架构详解_表示层

高内聚  低耦合

 

高内聚:功能内部的代码非常严谨

低耦合:功能与功能之间依赖性很小,一个功能出问题不会影响其它功能的运行,俗称:模块化。