一、什么是业务层
1) Model1和Model2
MVC: Model(模型)、View(视图)、Controller(控制器)
视图层:用于做数据展示以及用户交互的一个界面
控制层:能够接受客户端的请求,具体的业务功能还是需要借助模型组件来完成
模型层:模型分为很多种:有比较简单的pojo/vo(value object),有业务模型组件,有数据访问层组件
1) pojo/vo : 值对象
2) DAO : 数据访问对象
3) BO : 业务对象
区分业务对象和数据访问对象:
1) DAO中的方法都是单精度方法(或者称为细粒度方法)。什么叫单精度?一个方法只考虑一个操作,比如添加,那就是insert操作、查询就是select操作....
2) BO中的方法属于业务方法,实际的业务是比较复杂的,因此业务方法的粒度是比较粗的
注册这个功能属于业务功能,也就是说注册这个功能属于业务方法
那么这个业务方法包含了多个DAO方法。也就是说注册这个业务功能需要通过多个DAO方法的组合调用,从而完成注册功能的开发。
注册 :
1.检查用户名是否已经被注册 -DAO中的select操作
2.向用户表新增一条新用户记录 -DAO中的insert操作
3.向用户积分表新增一条记录(新用户默认初始化积分100分) -DAO中的insert操作
4.向系统消息表新增一条记录(某某某新用户注册了,需要根据通讯录信息向他的联系人推送信息) - DAO中的insert操作
5.向系统日志表新增一条记录(某用户在某IP某年某月某日某时某分某秒某毫秒注册) - DAO中的insert操作
6....
3)在库存系统中添加业务层组件
二、过滤器Filter 即: 客户端发请求 -->过滤 -->服务器 -->过滤 -->客 户端
1)Filter也属于Servlet规范
2)Filter开发步骤: 新建类实现Filter接口,然后实现其中的三个方法: init、doFilter、destroy
配置Filter,可以用注解@webFilter,也可以使用xml文件<filter> <filter-mapping>
3)Filter在配置时,和servlet一样,也可以配置通配符,例如@WebFilter("*.do")表示拦截所有以.do结尾的请求
4)过滤器链
- 如果采取的是注解的方式进行配置,那么过滤器的拦截是按照全类名的先后顺序排序的(A B C)
- 如果采取的是xml的方式进行配置,那么按照配置的先后顺序进行排序
5) filterChain.doFilter(servletRequest,servletResponse);放行,不放行则不执行代码(放行)以下的代码