OA项目之员工管理

  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)