OA项目整合之项目搭建
-
项目入门-了解项目功能
(1) 什么是OA系统?
OA即办公自动化,OA系统就是办公自动化系统,通过计算机技术将传统办公实现自动化。(2) 在项目的需求分析阶段,开发人员需要准备哪些东西?
进行项目需求分析,画用例图、数据库设计、数据库模型(3) oracle中,导入数据库表如何操作?
- 将sql文件中的命令复制,使用sqlplus工具运行。
- 使用第三方软件导入sql文件。
-
项目入门-搭建项目框架
(1) 根据MVC原理,OA项目如何进行分层?
控制层、服务层、数据访问层、视图层。(2) 导入的外部jar包有哪些?
ojdbc6.jar 、 gson-2.2.4.jar、 junit.jar 、log4j.jar(3) 项目访问名如何更改?
在项目名上右键—>properties–>deployment–>deployment assembly中的web context root,修改其中的信息。 -
部门管理-添加部门-完成后台代码并进行JUnit测试
(1) 进行JUnit测试的步骤?
在方法前加上@Test注释,点击方法名,右键runas ,选择junit测试(2) 如何在web.xml进行servet的配置?
先配置标签 配置其中的子标签,起一个名字,在配置子标签,其值为servlet的全类名。
在配置标签,配置其子标签,其值和标签的值一致,在配置子标签,其值为访问路径(3) 对于添加部门操作,大致逻辑应该怎么实现,添加成功怎么办,添加失败怎么办?
在页面接受部门名称、部门编号、办公地点的信息,提交到对应的控制层,由控制层封装成部门对象并调用服务层,在服务层调用数据访问层将数据持久化。在控制层判断是否持久化成功,成功则重定向到部门列表页面,否则提示用户添加失败。 -
部门管理-添加部门-完成前台代码并成功测试
(1) 添加部门成功要利用重定向,假如用请求转发可以吗?
使用请求转发会导致页面刷新提交重复表单,不利于交互。(2) 根据时序图,简述添加部门的过程:
人事专员在添加部门页面输入部门信息,表单发送到DepartmentServlet对象上,使用request对象获取表单数据,再调用DepartmentService对象的add(dept)方法,再调用DepartmentDao对象的save(dept)方法,在调用DBUtil工具类中的executeUpadte(sql,params[])方法将数据持久化,返回受影响的行数,一直返回到控制层,根据返回值判断是否成功。 -
部门管理-查询所有部门
(1) 查询所有部门,整体逻辑是什么样的?中间如何跳转?
接受到查询所有部门的请求后,控制层调用服务层,服务层调用数据访问层,数据访问层从数据库获取数据,将数据封装成List集合,返回到控制层,控制层将数据存放到requset对象中,请求转发到视图层,在视图层使用jstl+el显示数据(2) 后台查询出部门数据放入集合中,在jsp中如何进行遍历?代码如何实现?
使用jstl标签的<c:foreach>标签和el表达式遍历集合
<c:forEach items="${deptList }" var="dept">
<tr>
<td><input name='' type='checkbox' value='"+list[i].deptno+"' /></td>
<td>${dept.deptno }</td>
<td>${dept.deptName }</td>
<td>${dept.location }</td>
<td><a href='dept?method=selDept&deptno="+list[i].deptno+"' class='tablelink'>修改</a> <a href='javascript:delDept(${dept.deptno })' class='tablelink click'> 删除</a></td>
</tr>
</c:forEach>
-
部门管理-删除指定部门信息
(1) 删除部门,整体逻辑是什么样的?
接受到删除请求后,使用requset对象接受部门id,将值传递给服务层,在服务层调用数据访问层,数据访问层根据部门id从数据库删除部门。(2) 为什么在删除部门完成后,是请求转发至查询所有的servlet中,而不是直接跳转到deptList.jsp中?
因为查看所有部门信息的页面通过servlet获取数据的,直接跳转jsp无法获取数据。 -
部门管理-更新指定部门信息
(1) 更新部门,整体逻辑是什么样的?
接受到更新的请求后,使用requset对象接受新的部门信息,将值传递给服务层,在服务层调用数据访问层,数据访问层完成数据库更新操作。(2) 在更新失败后,请求转发到deptUpdate.jsp页面中,在页面中怎么处理错误信息?将错误信息放入什么标签中?
在页面显示错误信息。放在标签体中 -
部门管理-绘制更新部门时序图
(1) 简述,利用画时序图的步骤?
1. 创建一个时序图
2. 首先画empty,对应操作人员
3. 再画对象,表示功能实现过程中所有的对象。
4. 画实线表示,表示消息,可以设置调用的方法名及参数。
5. 画矩形条,表示方法正在运行,一直到方法运行结束
6. 一次向下画到最后一个方法。
7. 返回时画虚线,可以设置返回值。
8. 直到返回至empty。 -
员工管理-添加员工-创建实体类和搭建框架
(1) 员工表对应一个实体类,那么在这个实体类中,关联的部门的信息应该怎么编写呢?
答:在员工类中添加一个部门类属性, -
员工管理-添加员工-实现后台开发
(1) 简述添加员工的逻辑。
在添加员工页面输入员工信息,表单发送到EmployeeServlet对象上,使用request对象获取表单数据,再调用EmployeeService对象的add(emp)方法,再调用EmployeeDao对象的save(emp)方法,在调用DBUtil工具类中的executeUpadte(sql,params[])方法将数据持久化,返回受影响的行数,一直返回到控制层,根据返回值判断是否成功。(2) 如何进行String类型向int类型转换?
使用Integer类的parseInt方法 -
员工管理-添加员工-实现前台开发
(1) html页面和jsp页面的区别是什么?
Html页面时静态的,jsp页面本质上是一个servlet,可以根据业务需求实现动态展示。 -
员工管理-完善添加员工-使用日历插件和富文本编辑器
(1) 如何使用日历插件My97DatePicker?- 在官网下载日历插件。
- 在jsp中导入js文件
<script type="text/javascript"src="My97DatePicker/WdatePicker.js"></script>
- 在使用个日历插件的标签中添加事件οnfοcus=“WdatePicker()”;
(2)如何使用富文本编辑器?
- 在官网下载富文本编辑器
- 在jsp页面导入js文件
<script charset="utf-8" type="text/javascript"src="kindeditor/kindeditor-all-min.js"></script>
<script charset="utf-8" type="text/javascript" src="kindeditor/lang/zh-CN.js"></script>
- 创建一个
<textarea>
标签 - 添加js代码,将富文本编辑器添加在标签上
<script type="text/javascript">
KindEditor.ready(function(K) {
window.editor = K.create('#editor',{
width: "660px",
height: "300px",
resizeType: 1,
afterBlur: function(){
this.sync();
}
});
});
</script>