软件的分层
表现层(控制器servlet+视图jsp)-------表现层调用service
Service – 业务逻辑层 (调用dao,且加入业务逻辑)
DAO : 数据访问层 – 数据的增删改查
实体类 (entity, domain) – 用来存储数据的类(数据表)
值对象 (value object-简称VO) – 跟页面打交道的数据存入值对象,不是对应数据库表
注:1) 不可以跨层调用,只能表现层->业务逻辑层->DAO
2) 层与层进行调用,最好使用接口,不要直接调用实现类
扩展性差,耦合度高(一层代码的改动会影响到另一层的代码)
菜单树的实现
1) 数据部分(dao,service)
如果菜单数据量较大,可分多次查询
第一次查询一级菜单,之后点击哪个一级菜单再去查询相应的二级菜单
如果菜单数据量较小,可一次全查出来
要点:使用map集合建立菜单节点之间的父子关系,提高效率
2) 展现部分
使用css框架 bootstrap
要点:找出页面中html的规律,使用标签和el表达式改写原有静态代码
el表达式中要分清属性和方法
${集合.size()} // getSize()
${菜单对象.name} // getName()
empty 检查集合是否为空
not empty 检查集合是否不为空
重用页面代码
<%@ include file=“新页面”%>
单元测试工具 junit
java 单元测试工具