JavaWEB快速入门之三层架构[新闻发布系统08]【11】

一、JavaEE开发模式
    (1)JavaEE开发模式
        开发模式: 指模式在开发过程中总结出的"套路",总结出的一套约定俗称的设计模式。
   

     (2)JavaEE模式
            ① model1模式——【①】JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。

JavaWEB快速入门之三层架构[新闻发布系统08]【11】_第1张图片

 

             【②】JSP Model1优化后有所改进,把业务逻辑和数据访问的内容放到了JavaBean(狭义JavaBean:实体类,广义JavaBean:实体类,dao,service,工具类)中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让JSP做了过多的工作,JSP中把视图工作和请求调度(控制器)的工作耦合在一起了。

JavaWEB快速入门之三层架构[新闻发布系统08]【11】_第2张图片

 


            ② model2模式——JSP Model2模式已经可以清晰的看到MVC完整的结构了。JSP:视图层,用来与用户打交道。负责接收数据,以及显示数据给用户;Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图; JavaBean:模型层,完成具体的业务工作,例如:开启、转账等。

JavaWEB快速入门之三层架构[新闻发布系统08]【11】_第3张图片

 


            ③ 三层架构——三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。

JavaWEB快速入门之三层架构[新闻发布系统08]【11】_第4张图片
 

 生活原理:

JavaWEB快速入门之三层架构[新闻发布系统08]【11】_第5张图片

 

 二、三层架构

         (1)表示层(UI)   web层   显示层
                   表示层又称表现层或视图层或用户界面层 UI(User Interface layer):就是实现与用户交互的功能,将用户的需求传达和反馈,即用于接受用户输入的数据,同时反馈相关的输出数据展示给用户。
          【职责】收集用户的数据和需求、展示数据

          (2)业务逻辑层(BLL)
                   业务逻辑层 BLL(Business Logic Layer):是连接表示层和数据访问层的桥梁,实现业务逻辑的功能。可以对接受到的数据进行处理、执行相关的计算等一些逻辑操作。业务逻辑层通过调用数据访问层的各种操作方法,将这些方法按一定的逻辑组合起来实现具体需求,将这个过程比作搭积木的过程。
            【职责】数据加工处理、处理DAO完成业务实现

           (3)数据访问层(DAL )
                      数据访问层又称持久层 DAL (Data access layer):主要用来操作数据库中的数据,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层 BBL。比如在数据访问层定义了一些操作数据的方法,即增、删、改、查的方法,将这些方法比作一块块的积木。
             【职责】想业务层提供数据,将业务层加工后的数据同步到数据库

JavaWEB快速入门之三层架构[新闻发布系统08]【11】_第6张图片

 创建三级架构:

JavaWEB快速入门之三层架构[新闻发布系统08]【11】_第7张图片

编写接口——(业务逻辑层):

package com.zking.news.biz;
import com.zking.news.entity.Users;
/**
 * 用户功能接口(业务逻辑层)
 * @author Administrator
 *
 */
public interface IUsersBiz {
	/**
	 * 用户登录
	 */
	Users usersLogin(Users users);			
}

实现接口:

package com.zking.news.biz.impl;
import com.zking.news.biz.IUsersBiz;
import com.zking.news.dao.IUsersDao;
import com.zking.news.dao.impl.UsersDaoImpl;
import com.zking.news.entity.Users;
public class UsersBizImpl implements IUsersBiz{	
	//实例化DAO
	IUsersDao iud = new UsersDaoImpl();
	@Override
	public Users usersLogin(Users users) {
		return iud.usersLogin(users);
	}

}

简单布局:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


账户:
密码

中转站(使用三级架构):

<%@page import="com.zking.news.biz.impl.UsersBizImpl"%>
<%@page import="com.zking.news.biz.IUsersBiz"%>
<%@page import="com.zking.news.dao.impl.UsersDaoImpl"%>
<%@page import="com.zking.news.dao.IUsersDao"%>
<%@page import="com.zking.news.entity.Users"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>   
    <%
    	//1.设置编码
    	request.setCharacterEncoding("utf-8");
    
    	//2获取数据
    	String username = request.getParameter("username");
    	String password = request.getParameter("password");

    	//3.封装实体
    	Users users = new Users(username,password);
    	
    	
    	//实例化业务逻辑层
    	IUsersBiz iub = new UsersBizImpl();
    	Users u = iub.usersLogin(users);
    	
    	if(null!=u){
    		//OK
    		request.getRequestDispatcher("home.jsp").forward(request, response);
    	}else{
    		//no
    		response.sendRedirect("login.jsp");
    	}   
    %>
    

三层架构的优势:

  • 1,结构清晰、耦合度低
  • 2,可维护性高,可扩展性高
  • 3,利于开发任务同步进行, 容易适应需求变化

三层架构的优劣势:

  • 1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
  • 2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
  • 3、增加了代码量,增加了工作量

你可能感兴趣的:(web,tomcat,java,eclipse)