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

目录

为什么需要分层

软件设计中的分层模式

分层模式

分层

三层模式

三层模式的划分

三层模式的关系

三层开发遵循的原则

分层开发的特点

分层开发的优势

分层的实现

创建用户实体类

编写数据访问层

数据访问接口

数据访问接口的实现

编写业务逻辑层

编写业务逻辑层接口

 编写业务逻辑层接口实现

编写业务逻辑

编写业务逻辑层接口

编写业务逻辑层接口实现

编写表示层

JSP页面调用业务逻辑层

为什么需要分层

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


软件设计中的分层模式

分层模式

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

分层

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

三层模式

三层模式的划分

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

java三层结构 java web三层结构_html5

三层模式的关系

java三层结构 java web三层结构_java_02

三层开发遵循的原则

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

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