欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OA项目之员工管理

程序员文章站 2022-05-15 11:01:34
...
  1. 员工管理-完善添加员工-动态显示部门列表和员工上级
    (1) 页面中下拉框动态显示的原理是什么?
    浏览器向服务器发送获取添加员工的页面时,服务器从数据库中查找部门列表,和符合条件的管理者信息,在页面上的下拉框中设置查找到的信息。实现动态显示。

  2. 员工管理-查询所有员工-后台实现
    (1) 简述查询所有员工的逻辑和页面的跳转?
    浏览器向服务器发送获取所有员工信息的请求,服务器接收到请求在数据库查找所有员工的信息,将员工信息封装层Employee对象,放在集合中,将集合放在request作用域中,请求转发到到相应的jsp页面,在jsp页面中使用jstl和el显示员工信息。

    (2) 查询所有信息要从empployee,dept,position查询,利用了多表连接和自连接,请问如何编写这个sql?

    select * from (select rownum r,e.empid,e.realname,e.sex,e.birthdate,e.hiredate,e.leavedate,e.onduty,d.deptname,p.pname,mgr.realname mgrname,e.phone,e.qq,e.emercontactperson,e.idcard from employee e
    join dept d on e.deptno=d.deptno
    join position p on e.posid=p.posid
    join employee mgr on e.mgrid=mgr.empid
    where rownum<=5 and e.onduty=1)
    where r>0
    
  3. 员工管理-查询所有员工-前台实现
    (1) 如何使用taglib指令导入jstl标签库?
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    (2) 简述查询所有员工前台界面的编写?
    查询所有员工的前台页面主要包括搜索框、显示用户信息的表格、分页信息等,使用table标签显示用户信息,配合jstl和el。使用form表单发送需要查询的用户信息。分页标签使用ajax操作。根据获得的信息,动态的显示分页信息。

  4. 多条件查询员工-接收和记忆查询条件
    (1) 描述一种应用多条件查询的业务场景?
    电商平台的商品搜索服务,根据产地、价格、销量的那个信息筛选合适的商品。

    (2) 如何完成查询条件的记忆功能?

    1. 使用ajax,浏览器会自动记录查询信息。
    2. 使用servlet,将接受到的插询信息,获取查询结果后,连带查询信息一起请求转发到jsp页面,使用jstl的if标签将查询结果填入form表单。
  5. 员工管理-多条件查询员工-完整的查询操作
    (1) 简述整个查询逻辑。
    通过form表单将查询条件发送到服务器,服务器根据查询条件的在数据库查询的结果,将结果封装成employee对象的集合,在jsp页面进行渲染。

    (2) 如何完成后台的查询条件的sql的拼接。
    使用if判断查询条件的有无,有就拼接在sql中。
    Eg:

    String sql="select count(*) from employee where ";
    		for (String key : map.keySet()) {
    			if(!map.get(key).equals("null")) {
    				if(key.equals("empId")){
    					sql+=key+" like '%"+map.get(key)+"%' and ";
    					continue;
    				}else if(key.equals("hiredate")) {
    					sql+=key+">=to_date('"+map.get(key)+"','yyyy-mm-dd') and ";
    					continue;
    				}
    				sql+=key+"="+map.get(key)+" and ";
    			}
    		}
    		sql+=" 1=1";
    
  6. 员工管理-删除员工以及删除策略考量
    (1) 简述删除员工的逻辑
    在删除员工的a标签上添加单击事件,参数是员工的id,使用ajax发送删除员工请求,后台服务器获取员工id,在数据库中将该员工的在职状态改为不在职(0)。返回删除成功或删除失败的标识,使用ajax的回调函数操作dom。在页面上删除员工信息。若失败,则提示删除失败。

    (2) 在删除员工成功后,页面跳转后条件页面上会带出来刚才删过的员工的编号,这个问题就是一个代码bug,那么这个问题怎么解决呢?

    1. 改用重定向
    2. 修改参数名
    3. 使用ajax完成删除操作
  7. 员工管理-更新员工-预更新操作的后台代码
    (1) 简述更新操作的逻辑?
    浏览器发起更新信息的请求,携带员工id参数,服务器根据员工id在数据库查找到员工信息,在相应的页面将员工信息渲染到页面的form表单中。用户修改表单中的数据,再次提交表单,服务器接受form表单,完成数据库信息的更新操作。
    更新完成返回员工列表界面。

  8. 员工管理-更新员工-预更新操作前台数据回显
    (1) 如何将员工数据回显到empUpdate.jsp页面
    使用jstl和el,将用户信息填入form表单。
    在例如性别这些属性时,使用foreach标签和if标签配合,在对于的属性的标签。体中设置如checked属性。完成属性的选择

  9. 员工管理-更新员工-完成更新操作
    (1) 在整个更新操作中,需要注意的事项是什么?

    1. 如何回显单选框、复选框数据
    2. 如何回显下拉列表数据

    (2) 到这里为止,我们已经完成了员工的增删改查操作,我们是否可以总结一下,写代码从前端到后端的流程呢?(再次理解MVC)
    前端负责显示数据和获取用户输入的信息,后端负责接收信息并完成业务逻辑处理。处理结果交给前端向用户展现。在MVC模型中前端是视图层,后端是控制层,通过模型统一在一起。

  10. 考勤管理-登录-实现登录操作.
    (1) 简述登陆功能的逻辑和页面的跳转。
    用户在登录页面填写信息,提交表单后,后台接受到数据,根据用户名在数据库查找用户信息,对比密码,密码真确则登陆成功,重定向到主页面,否则重定向到登录页面,附带错误提示信息,使用request作用域或者session作用域。

    (2) 登陆成功进入到系统之后,页面上如何显示当前用户呢?
    在页面右上角显示用户名。

  11. 考勤管理-登录和注销-登录成功后显示不同导航菜单
    (1) 如何完成用户退出功能?
    浏览器向服务器发送退出登录请求,服务器将session销毁。重定向到的登录页面。

    (2) 登陆系统后,不同的用户看到的菜单是不一样的,这个功能如何完成的呢?
    根据用户信息在数据库中查找用户的权限,在主页面渲染时根据权限的不同渲染不同的栏目。

    (3) 登陆系统后,不同的用户看到的菜单是不一样的,思考是否有更好的技术能帮助我们完成这个事呢?可以自行查询资料。
    Shiro安全框架。

  12. 考勤管理-登录-实现验证码
    (1) 平时经常遇到验证码功能,请问验证码的作用是什么?
    识别人和机器,防止机器恶意登录。

    (2) 如何完成验证码功能,简述整个逻辑?
    在登录页面获取验证码。验证码的servlet生成随机验证码,将绘制的图片返回,将字符串类型的验证码存放到session中,用户输入验证码登录时,从session中取出验证码,对比,正确则进行登陆操作。

相关标签: j2ee