OA系统

OA项目整合之项目搭建

  1. 项目入门-了解项目功能
    (1) 什么是OA系统?
    OA即办公自动化,OA系统就是办公自动化系统,通过计算机技术将传统办公实现自动化。

    (2) 在项目的需求分析阶段,开发人员需要准备哪些东西?
    进行项目需求分析,画用例图、数据库设计、数据库模型

    (3) oracle中,导入数据库表如何操作?

    1. 将sql文件中的命令复制,使用sqlplus工具运行。
    2. 使用第三方软件导入sql文件。
  2. 项目入门-搭建项目框架
    (1) 根据MVC原理,OA项目如何进行分层?
    控制层、服务层、数据访问层、视图层。

    (2) 导入的外部jar包有哪些?
    ojdbc6.jar 、 gson-2.2.4.jar、 junit.jar 、log4j.jar

    (3) 项目访问名如何更改?
    在项目名上右键—>properties–>deployment–>deployment assembly中的web context root,修改其中的信息。

  3. 部门管理-添加部门-完成后台代码并进行JUnit测试
    (1) 进行JUnit测试的步骤?
    在方法前加上@Test注释,点击方法名,右键runas ,选择junit测试

    (2) 如何在web.xml进行servet的配置?
    先配置标签 配置其中的子标签,起一个名字,在配置子标签,其值为servlet的全类名。
    在配置标签,配置其子标签,其值和标签的值一致,在配置子标签,其值为访问路径

    (3) 对于添加部门操作,大致逻辑应该怎么实现,添加成功怎么办,添加失败怎么办?
    在页面接受部门名称、部门编号、办公地点的信息,提交到对应的控制层,由控制层封装成部门对象并调用服务层,在服务层调用数据访问层将数据持久化。在控制层判断是否持久化成功,成功则重定向到部门列表页面,否则提示用户添加失败。

  4. 部门管理-添加部门-完成前台代码并成功测试
    (1) 添加部门成功要利用重定向,假如用请求转发可以吗?
    使用请求转发会导致页面刷新提交重复表单,不利于交互。

    (2) 根据时序图,简述添加部门的过程:
    人事专员在添加部门页面输入部门信息,表单发送到DepartmentServlet对象上,使用request对象获取表单数据,再调用DepartmentService对象的add(dept)方法,再调用DepartmentDao对象的save(dept)方法,在调用DBUtil工具类中的executeUpadte(sql,params[])方法将数据持久化,返回受影响的行数,一直返回到控制层,根据返回值判断是否成功。

  5. 部门管理-查询所有部门
    (1) 查询所有部门,整体逻辑是什么样的?中间如何跳转?
    接受到查询所有部门的请求后,控制层调用服务层,服务层调用数据访问层,数据访问层从数据库获取数据,将数据封装成List集合,返回到控制层,控制层将数据存放到requset对象中,请求转发到视图层,在视图层使用jstl+el显示数据

    (2) 后台查询出部门数据放入集合中,在jsp中如何进行遍历?代码如何实现?
    使用jstl标签的标签和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. 部门管理-删除指定部门信息
    (1) 删除部门,整体逻辑是什么样的?
    接受到删除请求后,使用requset对象接受部门id,将值传递给服务层,在服务层调用数据访问层,数据访问层根据部门id从数据库删除部门。

    (2) 为什么在删除部门完成后,是请求转发至查询所有的servlet中,而不是直接跳转到deptList.jsp中?
    因为查看所有部门信息的页面通过servlet获取数据的,直接跳转jsp无法获取数据。

  2. 部门管理-更新指定部门信息
    (1) 更新部门,整体逻辑是什么样的?
    接受到更新的请求后,使用requset对象接受新的部门信息,将值传递给服务层,在服务层调用数据访问层,数据访问层完成数据库更新操作。

    (2) 在更新失败后,请求转发到deptUpdate.jsp页面中,在页面中怎么处理错误信息?将错误信息放入什么标签中?
    在页面显示错误信息。放在标签体中

  3. 部门管理-绘制更新部门时序图
    (1) 简述,利用画时序图的步骤?
    1. 创建一个时序图
    2. 首先画empty,对应操作人员
    3. 再画对象,表示功能实现过程中所有的对象。
    4. 画实线表示,表示消息,可以设置调用的方法名及参数。
    5. 画矩形条,表示方法正在运行,一直到方法运行结束
    6. 一次向下画到最后一个方法。
    7. 返回时画虚线,可以设置返回值。
    8. 直到返回至empty。

  4. 员工管理-添加员工-创建实体类和搭建框架
    (1) 员工表对应一个实体类,那么在这个实体类中,关联的部门的信息应该怎么编写呢?
    答:在员工类中添加一个部门类属性,

  5. 员工管理-添加员工-实现后台开发
    (1) 简述添加员工的逻辑。
    在添加员工页面输入员工信息,表单发送到EmployeeServlet对象上,使用request对象获取表单数据,再调用EmployeeService对象的add(emp)方法,再调用EmployeeDao对象的save(emp)方法,在调用DBUtil工具类中的executeUpadte(sql,params[])方法将数据持久化,返回受影响的行数,一直返回到控制层,根据返回值判断是否成功。

    (2) 如何进行String类型向int类型转换?
    使用Integer类的parseInt方法

  6. 员工管理-添加员工-实现前台开发
    (1) html页面和jsp页面的区别是什么?
    Html页面时静态的,jsp页面本质上是一个servlet,可以根据业务需求实现动态展示。

  7. 员工管理-完善添加员工-使用日历插件和富文本编辑器
    (1) 如何使用日历插件My97DatePicker?

    1. 在官网下载日历插件。
    2. 在jsp中导入js文件
    3. 在使用个日历插件的标签中添加事件οnfοcus=“WdatePicker()”;

    (2)如何使用富文本编辑器?

    1. 在官网下载富文本编辑器
    2. 在jsp页面导入js文件

    3. 创建一个