java-web分层2-Bean和业务层

原创 2017年01月02日 21:43:53

上次我们说的是Dao层,那么这次我们来看javaBean层和业务层要实现怎样的功能,之前说的是dao层的任务是和数据库进行交换,可以在某个具体的实体类的DaoImpl对数据进行操作,比如说我们某一个数据表里面取到数据了,那么现在我们是之间发送到前台,还是还要经过其他的层,我们来看javaBean一些类实现那些操作,

javaBean类主要放在com.XXX.domain下面:我们来看CartBean类

package com.cart.domain;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.cart.dao.ProductDao;
import com.cart.dao.impl.ProductDaoImpl;
public class CartBean {
	//定义集合来表示处理逻辑的类
	private List<Product> products=new ArrayList<Product>();
        public CartBean(List<Product> products) {
		super();
		this.products = products;
	}
        public CartBean() {
		super();
		// TODO Auto-generated constructor stub
	}
       public List<Product> getProducts() {
		return products;
	}

	public void setProducts(List<Product> products) {
		this.products = products;
	}
	//添加商品到购物车的方法
	public void addProduct(int proId) throws ClassNotFoundException, SQLException
	{
		ProductDao proDao=new ProductDaoImpl();
		Product product=proDao.isExist(proId);
		boolean isExist=false;
		if(null!=product)
		{
			//遍历购物车当前的记录,如果能找到一个id为ProId 的
			//将该产品的orderNum+1
			//如果没有就新增一个记录
			for(int i=0;i<products.size();i++)
			{
				Product temp=products.get(i);
				if(product.getId()==temp.getId())
				{
					isExist=true;
					temp.setOrderNum(temp.getOrderNum()+1);
				}
			}
		}
		if(!isExist)
		{
			//加入购物车
			products.add(product);
		}
	}
}
这个层是一个过渡层,我们不知道业务层需要什么样子的数据,所以这一层是从dao层中获取到数据然后提供给服务层,我们Bean这一层获取数据并不是直接的从数据库中获取到,而是调用到层数据的一些方法,我们可以为某一个实体类都设置一个Bean类,这个需要的之后实体类需要的数据我们就可以从Bean层获取到了
ProductBean类
package com.cart.domain;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.cart.dao.ProductDao;
import com.cart.dao.impl.ProductDaoImpl;

public class ProductBean {
	//凡是使用设计请求数据库中的数据操作都要使用Dao相关的实现资源
	private ProductDao proDao=new ProductDaoImpl();
	private List<Product> products=new ArrayList<>();
	//对应的get和set方法
	public List<Product> getProducts(){
		return products;
	}
	public void setProducts(List<Product> products)
	{
		this.products=products;
	}
	public ProductBean() {
		super();
		// TODO Auto-generated constructor stub
	}
	//获取所有的产品的信息的集合
	public List<Product> getAllProInfo() throws ClassNotFoundException, SQLException
	{
		products=proDao.quryAllProduct();
		return products;
		
	}
我们要理解Bean层那就要和其他的层进行结合:我们来看业务层:

package com.cart.biz;

import java.util.List;

import com.cart.domain.Product;

//业务层
public interface ProductService {
	public List<Product> getAllProducts();
	public List<Product> getCartProducts(int proId);
}
业务层是获取到所有的商品和获取到购物车中的商品,我们看这个接口的实现:可以看到业务层的数据都是在Bean里面获取,而且Bean还有一种任务是从数据库获取数据等等有很多的异常还没有进行处理我们就在这一层进行处理

业务层是从Bean中获取到数据然后给Servlet,Servlet传递数据到网页。

package com.cart.biz.impl;

import java.sql.SQLException;
import java.util.List;
import java.util.logging.Logger;

import com.cart.biz.ProductService;
import com.cart.domain.CartBean;
import com.cart.domain.Product;
import com.cart.domain.ProductBean;

public class ProductServiceImpl implements ProductService {
	   ProductBean proBean=new ProductBean();
	   //获取到购物车的信息
	   CartBean cartBean=new CartBean();
	   //获取所有的 产品
	@Override
	//获取所有的产品的信息
	public List<Product> getAllProducts() {
     System.out.println("获取所有的产品的信息");
     try {
		return proBean.getAllProInfo();
	} catch (ClassNotFoundException e) {
		System.out.println("获取所有产品的信息的时候出现了异常");
		e.printStackTrace();
		return null;
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		return null;
	}
  }

	@Override
	//获取到购物车中的产品信息
	public List<Product> getCartProducts(int proId) {
		try {
			cartBean.addProduct(proId);
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return cartBean.getProducts();
	}
}
我们来看servlet是从网页获取:

package com.cart.biz.web.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.cart.biz.ProductService;
import com.cart.biz.impl.ProductServiceImpl;
import com.cart.domain.Product;

/**
 * Servlet implementation class ProductServlet
 */
@WebServlet("/ProductServlet")
public class ProductServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    ProductService proService=new ProductServiceImpl();
    public ProductServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		response.getWriter().append("Served at: ").append(request.getContextPath());
		doPost(request, response);
	
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取当前产品的列表
		List<Product> products=proService.getAllProducts();
		for(int i=0;i<products.size();i++)
		{
			Product pro=products.get(i);
			System.out.println(pro.getId()+","+pro.getName()+","+pro.getOrderNum());
		}
		
	
	}

}
从:ProductService proService=new ProductServiceImpl();可以看出servlet传到网页中的数据都是从业务层获取到的。
好了,到这个地方我们大致知道了数据从数据库传递到网页的一个流程,获取对我们今后的编程,更加的规范有一定的帮助。




JavaWeb项目的大概分层

1.web层。 web层可以使用经典的MVC设计模式,又可以分为三个部分: M-Model,模型,一般表现为提交的表单内容,请求参数等,是服务器与客户端交流的数据载体。 V-View,表现层,用来展示...
  • zhuyunhe
  • zhuyunhe
  • 2015年04月15日 15:13
  • 4625

标准Web系统的架构分层

标准Web系统的架构分层 标准Web系统架构适用于传统的基于WEB浏览器/手机端的CRM系统、ERP系统、SaaS系统、O2O系统、商城系统、物流系统。架构的灵活性和业务适应性决定了不同的系统根据业...
  • yinwenjie
  • yinwenjie
  • 2015年06月22日 10:30
  • 67041

JavaWEB分层设计思想模式

一、JavaWeb开发模式C/S:客户端 / 服务器 B/S:浏览器 / 服务器 JavaBean: 就是一个普通类(实体bean),包含三样标准:一个无参构造、私有属性、公共的ge...
  • u011958281
  • u011958281
  • 2017年07月02日 20:20
  • 705

java-web中的分层1-dao

其实我们从java-web的项目来看实现的是将数据从数据库中显示到前台,或者是将数据从前台输入存入数据库这样的一个过程,我们需要在这个中间过程中对事物进行处理,于是就出现了java-web中的分层。出...
  • datouniao1
  • datouniao1
  • 2017年01月02日 21:12
  • 754

Javaweb项目分层概念理解

概念理解: DAO —— Data Access Object数据访问对象(接口) DAOImpl 上面的实现类 entity —— 数据的对象 Service(不是Server)——就是中间层、逻...
  • cx776474961
  • cx776474961
  • 2017年11月07日 14:42
  • 314

AJAXJS-Web 模版语言基础

模板语句包括:EL 表达式、标签库和自定义标签库。EL 表达式常见的 EL 表达式如下表所示。EL 表达式含义${param.xxx}获取请求参数,相当于 request.getParameter("...
  • zhangxin09
  • zhangxin09
  • 2012年12月19日 21:57
  • 2649

JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

首先这是现在最基本的分层方式,结合了SSH架构。modle层就是对应的数据库表的实体类。Dao层是使用了Hibernate连接数据库、操作数据库(增删改查)。Service层:引用对应的Dao数据库操...
  • limuzi13
  • limuzi13
  • 2015年04月10日 00:47
  • 49226

JAVA三层架构,持久层,业务层,表现层的理解

SSH:Struts(表示层 )+Spring(业务层)+Hibernate(持久层)Struts: Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在 MVC框架 中,...
  • ljf_study
  • ljf_study
  • 2017年03月21日 16:22
  • 8383

Java Web基础——Action+Service +Dao三层的功能划分

参考来源:http://www.xuebuyuan.com/2153333.html  1. Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的。...
  • inter_peng
  • inter_peng
  • 2014年11月11日 23:02
  • 101646

JavaBean的设计和使用模型

JavaBean是实现web层中的业务处理的轻量级的组件,虽然说有一定的规范,但是很宽松,同一般做application的JavaBean一样,甚至与一般的class类一样。在web层中使用JavaB...
  • gaolongbiti
  • gaolongbiti
  • 2005年06月08日 18:38
  • 1072
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java-web分层2-Bean和业务层
举报原因:
原因补充:

(最多只允许输入30个字)