javaWeb(三层架构)

一.为什么要分层

1.JSP开发的弊端

业务处理的代码与JSP代码混在一起,不易于阅读,不易于代码维护

 
… <% String uname=request.getParameter("user"); String upwd=request.getParameter("pwd"); String driverClassName ="oracle.jdbc.driver.OracleDriver"; String url ="jdbc:oracle:thin:@10.0.0.34:1521:PRD34"; …

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

1.分层模式

① 分层模式是最常见的一种架构模式

② 分层模式是很多架构的基础

2.分层

① 将解决方案的组件分隔到不同的层中

② 在同一个层中组件之间保存内聚性

③ 层于层子间保存松耦合

三.三层模式

1.三层模式的划分

① 表示层<---->业务逻辑层<---->数据访问层

② 表示层依赖于业务逻辑层

③ 业务逻辑层依赖 于数据访问层

四.分层实现用户登录

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

2.编写数据库访问层

① 数据访问接口

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

3.编写业务逻辑层

① 编写业务逻辑层接口

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

4.编写表示层

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

五.三层开发遵循的原则

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

① 表示层不能直接访问数据访问层

② 上层调用下层的结果,取决于下层的实现

2.下一层不能调用上一层

3.下一层不能依赖上一层

① 上层的改变不会影响下一层

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

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

① 分工明确,各司其职

六.分层开发的特点

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

① 仅完成自身的功能

② 不关心结果如何使用

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

① 只关心结果的取得

② 不关心结果的实现过程

③ JSTL通常会于EL表达式合作实现JSP页面的编码

七.分层开发的优势

职责划分清晰

无损替换

复用代码

降低了系统内部的依赖程度

你可能感兴趣的:(java)

用户名称: