JavaWeb11.开发中的三层架构

回顾:JavaWeb10.富文本编辑器&文件上传功能

目录

为什么需要分层

软件设计中的分层模式

分层模式

分层

三层模式

三层模式的划分

三层模式的关系

三层开发遵循的原则

分层开发的特点

分层开发的优势

分层的实现

创建用户实体类

编写数据访问层

数据访问接口

数据访问接口的实现

编写业务逻辑层

编写业务逻辑层接口

 编写业务逻辑层接口实现

编写业务逻辑

编写业务逻辑层接口

编写业务逻辑层接口实现

编写表示层

JSP页面调用业务逻辑层

为什么需要分层

JSP开发具有弊端,业务的代码与JSP代码混在一起,不易阅读,不易于代码的维护


软件设计中的分层模式

分层模式

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

分层

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

三层模式

三层模式的划分

  • 表示层
  • 业务逻辑层
  • 数据库访问层

三层模式的关系

三层开发遵循的原则

1.上层依赖其下层,依赖关系不跨层

  • 表示层不能直接访问数据访问层
  • 上层调用下层的结果,取决于下层的实现

2.下层不能调用上一层

3.下一层不依赖上一层

  • 上层的改变不会影响下一层
  • 下层的改变会影响上一层得到的结果

4.在上一层中不能出现下一层概念

  • 分工明确,各司其职

分层开发的特点

1.下层不知道上层的存在

  • 仅完成自身的功能
  • 不关心结果如何使用

2.每一层仅知道其下层的存在,忽略其他层的存在

  • 只关心结果的取得
  • 不关心结果的实现过程
  • JSTL通常会与EL表达式合作实现JSP页面的编码

分层开发的优势

  • 职责划分清晰
  • 无损替换
  • 复用代码
  • 降低了系统内部的依赖程度

分层的实现

创建用户实体类

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方法
}

编写数据访问层

数据访问接口

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;
    	/** 调用创建数据库连接的方法 获得连接,实现用户名和密码查询*/
}

编写业务逻辑层

编写业务逻辑层接口

//编写业务逻辑控制接口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;
    	}
}

编写业务逻

编写业务逻辑层接口

//编写业务逻辑控制接口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;
    	}
}

编写表示层

JSP页面调用业务逻辑层

<%@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");
%>

你要尽全力保护你的梦想。那些嘲笑你梦想的人,他们注定失败,他们想把你变成和他们一样。我坚信,只要心中有梦想,我就会与众不同。你也是。 

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值