OA案例---员工管理

4 篇文章 1 订阅
2 篇文章 0 订阅

学习主题:OA系统
学习目标:
1 掌握web开发项目实战,熟练使用web开发基础技术

1.员工管理-完善添加员工-动态显示部门列表和员工上级

(1)页面中下拉框动态显示的原理是什么?
答:查询下拉框对应的数据的值,将数据存进request中,通过请求转发流转到jsp页面中,在jsp页面中通过JSTL和el表达式将request中的数据读取出来显示。

2.员工管理-查询所有员工-后台实现

(1)简述查询所有员工的逻辑和页面的跳转?
答:dao层查询所有员工的数据,将数据一路返回至servlet,并将数据存进request中,通过请求转发将request数据流转到jsp页面,jsp页面通过JSTL和el表达式,读取信息显示。
(2)查询所有信息要从empployee,dept,position查询,利用了多表连接和自连接,请问如何编写这个sql?
在这里插入图片描述

3.员工管理-查询所有员工-前台实现

(1)如何使用taglib指令导入jstl标签库?
在这里插入图片描述

(2)简述查询所有员工前台界面的编写?
答:除去条件查询部分,整体是个table,使用jstl的foreach标签将数据循环显示,、

在这里插入图片描述

4.多条件查询员工-接收和记忆查询条件

(1)描述一种应用多条件查询的业务场景?
答:想查出某个部门中离职的员工信息
(2)如何完成查询条件的记忆功能?
答:在jsp页面中,对相应属性中的value值,使用el表达式获取request中的数据。

5.员工管理-多条件查询员工-完整的查询操作

(1)简述整个查询逻辑。
答:在查询所有的基础上,根据条件选择进行sql语句的拼接,在拼接上,使用if判断,根据获取的值是否符合条件来进行拼接
(2)如何完成后台的查询条件的sql的拼接。

在这里插入图片描述

6.员工管理-删除员工以及删除策略考量

(1)简述删除员工的逻辑
答:在jsp页面中,点击删除,触发单击事件,弹出确认弹框,确认后向相应servlet发送请求,在发送请求的同时携带empid,empid通过el表达式获取。Servlet调用相应service,service调用dao层进行数据库操作。之后再将数据原路返回到servlet,使用重定向请求查询所有员工信息
(2)在删除员工成功后,页面跳转后条件页面上会带出来刚才删过的员工的编号,这个问题就是一个代码bug,那么这个问题怎么解决呢?
答:使用重定向进行页面跳转

7.员工管理-更新员工-预更新操作的后台代码

(1)简述更新操作的逻辑?
答:点击修改,发送请求(附带empid),根据empid查询该员工信息,并显示在修改页面,在servlet中获取修改页面的数据,封装成对象作为参数传给相应service,再传给dao进行处理。之后将结果返回,成功则发送请求查询所有,否则跳转到修改页面

8.员工管理-更新员工-预更新操作前台数据回显

(1)如何将员工数据回显到empUpdate.jsp页面
答:根据empid查询出某个员工的信息,将信息存进request中,在请求转发流转到

empUpdate.jsp中,在页面中使用el和jstl读取数据并显示
//多条件查询,不分页
	public void findEmp(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取查询信息
		String empid=request.getParameter("empid");
		
		int deptno = 0;
		String sdeptno = request.getParameter("deptno"); //null
		try{
			deptno = Integer.parseInt(sdeptno);
		}catch(NumberFormatException e){
			e.printStackTrace();
		}
		
		int onduty = 1;
		String sonduty = request.getParameter("onduty");//null	
		try{
			onduty = Integer.parseInt(sonduty);
		}catch(NumberFormatException e){
			e.printStackTrace();
		}
		
		String shiredate=request.getParameter("hiredate");
		DateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		Date hiredate=null;
		try {
			hiredate= sdf.parse(shiredate);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//调用业务层获取对象
		EmployeeService empService=new EmployeeServiceImpl();
		List<Employee> empList=empService.findEmp(empid,deptno,onduty,hiredate);
		//获取所有部门信息
		DepartmentService deptService=new DepartmentServiceImpl();
		List<Department> deptList=deptService.findAll();
		request.setAttribute("deptList", deptList);
		
		//跳转到system/empList.jsp
		request.setAttribute("empid", empid);
		request.setAttribute("deptno", deptno);
		request.setAttribute("onduty", onduty);
		request.setAttribute("hiredate", shiredate);
		request.setAttribute("empList", empList);//将页面的数据放入request中才能获取到页面信息
		request.getRequestDispatcher("/system/empList.jsp").forward(request, response);
		
		
	}

9.员工管理-更新员工-完成更新操作

(1)在整个更新操作中,需要注意的事项是什么?
答:更新操作要注意总共分为两部分,首先查询出要修改的员工的信息,之后再修改该员工的信息。
(2)到这里为止,我们已经完成了员工的增删改查操作,我们是否可以总结一下,写代码从前端到后端的流程呢?(再次理解MVC)
答:前端界面(视图层)调用相应servlet(控制层),servlet调用service(业务层),service调用dao层进行数据操作。从数据库查询出数据后,再原路返回,返回到servlet后,请求转发或者重定向到其他servlet或者相应页面。

10.考勤管理-登录-实现登录操作.

(1)简述登陆功能的逻辑和页面的跳转。
答:用户输入用户名和密码,servlet将页面用户输入的数据获取,并作为参数传给service,service调用dao层,dao层将根据参数用户名和密码查询数据库中是否有符合条件的数据,有则通过可以登录,进入主页面,否则登陆失败,返回登录界面
(2)登陆成功进入到系统之后,页面上如何显示当前用户呢?
答:登陆成功时,将该用户的信息存进session中,页面上使用el表达式获取session中该员工信息,获取需要的数据,显示在正确的位置上

11.考勤管理-登录和注销-登录成功后显示不同导航菜单

(1)如何完成用户退出功能?
答:将session销毁后重定向到登录界面
(2)登陆系统后,不同的用户看到的菜单是不一样的,这个功能如何完成的呢?
答:在jsp页面中使用jstl表达式,通过emptype判断身份,从而显示不同页面
(3)登陆系统后,不同的用户看到的菜单是不一样的,思考是否有更好的技术能帮助我们完成这个事呢?可以自行查询资料。

12.考勤管理-登录-实现验证码

(1)平时经常遇到验证码功能,请问验证码的作用是什么?
答:是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。
(2)如何完成验证码功能,简述整个逻辑?
答:在randoServlet中将验证码图像生产并存进session中,在登录的servlet中,将session中的验证码获取,同时也获取页面中用户输入的验证码,将二者进行对比,一致则通过,进行剩余代码,否则直接返回到登录界面。在jsp页面中,点击验证码,触发单击事件,根据时间不同,产生新的验证码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值