OA平台项目编程

3 篇文章 0 订阅
2 篇文章 0 订阅

OA平台项目编程

结果文档

1项目概述

  • 1.1项目背景与意义
OA信息管理系统是一个高度集成的客户信息处理系统,通过对现实应用场景中的需求分析与功能实现,并将各种功能进行整合,从而达到在一个系统中可以显示客户信息、索引客户信息提高工作效率、降低管理成本等目的。
企业级OA信息管理系统可以管理数据库中的所有客户信息,还需要提供各种方式的检索查询功能.通过该系统的管理,能够大大减少用户的工作任务,从而降低管理开销和成本。
一个完整的OA信息管理系统应该包括优美的前台和稳定可靠的后台,前台主要是通过JSP、html语言的编写,形成浏览器可转化的可视化界面;后台主要是处理前台所返回的数据,并将处理后的结果返回给前台或数据库,整个运行过程中需要Tomcat服务器的支持。
  • 2需求分析

2.1 需求简介

根据OA信息管理系统的整个流程,主要分为四个需求:分别是对员工信息、部门信息、个人信息以及用户权限的查询、插入、删除、修改等操作;而对于系统的界面,则要求简单、易读、易可操作;对于OA管理系统的页面响应速度,则要求在网络良好的情况下,应达到毫秒级别。
  • 2.2 功能需求

2.2.1 登录功能

登录功能主要是为了让管理员用户,通过登录界面进入OA主界面而设计的,当管理员输入正确的账号密码,则可跳转到OA管理界面;若账户密码错误,则跳转到错误界面。

2.2.2 员工信息管理

在OA系统主界面中,操作用户可以点击员工信息选项,跳转到员工信息管理界面,此界面可以显示用户的姓名、年龄、工作、工资、工作部门,并且在员工信息管理界面中,应分别提供添加员工信息功能,用于添加将员工姓名、年龄、工作、工资、部门号;修改用户信息功能,可对员工的姓名、年龄、工作、年薪、以及部门号进行修改;删除员工信息功能,可通过点击员工信息管理界面中的删除按钮,删除数据库中的此条员工信息;模糊搜索功能,可通过输入员工姓名的部分关键字,系统则会从数据库中查找并显示所有相关的用户信息。

2.2.3 部门信息管理

在OA系统主界面中,操作用户可以点击部门信息选项,跳转到部门信息管理界面,此界面可以显示部门的名称、部门人数、以及操作方式,并且在部门信息管理界面中,应分别提供修改部门信息功能,可对部门的名称、部门人数进行修改;删除部门信息功能,可通过点击部门信息管理界面中的删除按钮,删除数据库中的此条部门信息。

2.2.4 个人信息管理

在OA系统主界面中,操作用户可以点击个人信息选项,跳转到个人信息管理界面,此界面可以显示当前用户的姓名、登录名、登录密码、年龄、性别、联系方式、用户权限以及修改操作按钮;在个人信息管理界面中,提供修改个人信息的功能,可对当前用户的姓名、登录名、登录密码、年龄、性别、联系方式、用户权限进行修改,并保存在数据库中。
2.2.5 用户权限管理
	在OA系统主界面中,操作用户可以点击权限管理选项,跳转到用户权限管理界面,此界面可以显示当前用户的登录名、用户权限以及修改操作按钮;在用户权限管理界面中,提供权限修改的功能,可对当前用户的权限进行修改,并保存在数据库中。
  • 2.3 非功能需求
  • [ ]
2.3.1 响应时间 页面载入所需要的时间不得超过1秒。 在网络畅通时,页面访问所需时间不得超过500毫秒。 在网络畅通时,数据更新时间不超过100毫秒。
       2.3.2 程序大小 	由于此系统是部署在服务器中,故对其的大小不做要求;但对每个系统页面所要载入的数据量要求精简明了,杜绝过分复杂冗余。
       2.3.3 数据库安全性 	对于企业级OA系统,要对数据库的安全进行严格的防御,以防止网络非法用户通过Http、DDOS、CC攻击等,窃取或毁坏数据库中的用户数据,为企业造成不可估计的损失。
  • 3.软件编程

这里主要介绍员工信息管理的代码实现过程,其他功能由于与此功能极其类似,故不在赘述。

  • 3.1数据库连接
这里采用连接池技术,调用配置文件jdbc.properties,已完成数据库连接的功能。
  • 4.1.1连接工具类
    主要代码如下:
public class DBUtils {
	private static String driver;
	private static String url;
	private static String username;
	private static String password;
	private static BasicDataSource dataSource;
	
	static{
		Properties prop=new Properties();
		InputStream ip=DBUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
		try {
			prop.load(ip);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//读取配置文件数据
		driver=prop.getProperty("driver");
		url=prop.getProperty("url");
		username=prop.getProperty("username");
		password=prop.getProperty("password");
		//创建连接池
		dataSource=new BasicDataSource();
		dataSource.setDriverClassName(driver);
		dataSource.setUrl(url);
		dataSource.setUsername(username);
		dataSource.setPassword(password);
		dataSource.setInitialSize(3);
		dataSource.setMaxActive(3);
	}
	public static Connection getConn() throws SQLException {
		
			return dataSource.getConnection();
		
	}
	public static void close(Connection conn,PreparedStatement state){
		if(state!=null){
			try {
				state.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(conn!=null){
			try {
				conn.setAutoCommit(true);
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
  • 3.1.2 配置文件
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/ahpu
username=root
password=root
  • 3.2系统主界面
    主要代码如下:
<body>
<!-- 选择器:id class 标签 派生  -->
   <div class ="box1" >
   </div>
   <div class ="box2">
     <div class="gx">
        <a>OA系统</a>   
     </div>
     
     <div class ="bd1">
     <a href="emplist" class="mn1" id=1>
                员工信息
        </a>
     </div>
     
     <div class ="bd2">
     <a href="deptMain" class="mn2" id = 2>
                    部门信息
        </a>
     </div>
     
     <div class ="bd3">
        <a href="PMain" class="mn3">
                    个人信息
        </a>
     </div>
     
     <div class ="bd4">
     <a href="rMain" class="mn4" id = 1>
                权限管理
        </a>
     </div>
        </div>
   </div>
</body>
  • 3.3员工管理功实现
  • 3.3.1 信息显示界面
    主要代码如下:
<body>
<div class="header">
		<div class="wrapper clearfix">
			<div class="navList">
				<ul>
					<li><a href="main.jsp">首页</a></li>
					<li><a href="emplist">员工信息管理</a></li>
					<li><a href="deptMain">部门信息管理</a></li>
					<li><a href="PMain">个人信息管理</a></li>
					<li><a href="rMain">权限管理</a></li>
				</ul>
			</div>
			<div class="company">安徽工程大学OA管理</div>
		</div>
	</div>
	<div class="page_">
		<div class="top_ ">
			<p class="h1">员工信息管理</p>
		</div>	
				<form action="vagueEmp" method="post">
					<table class="table">
						<tr>
							<td valign="middle" align="right">Name:</td>
							<td valign="middle" align="left"><input type="text" class="inputStr" name="VagueName" id="VagueName" placeholder="快速搜索"/></td>
							<td ><input type="submit" value="搜索"/></td>
						</tr>
					</table>
				</form>
				
				<table class="table">
					<tr class="table_header">
						<td>姓名</td>
						<td>年龄</td>
						<td>工作</td>
						<td>工资</td>
						<td>部门</td>
						<td>操作</td>
					</tr>
					<!-- 从请求信息中获取集合 -->
					<% ArrayList<Employee> emps = (ArrayList<Employee>)(request.getAttribute("emps"));%>
					<% int i = 0; %>
					<% for( Employee e : emps){%>
						<tr class="row<%=i%2+1 %>">
							<td><%=e.getUname() %></td>
							<td><%=e.getAge() %></td>
							<td><%=e.getJob() %></td>
							<td><%=e.getSalary() %></td>
							<td><%=e.getDname() %></td>
							<td>
								<a href="delEmp?id=<%=e.getId() %>" onclick="return confirm('确认删除<%= e.getUname()%>?')">删除</a>
								&nbsp;
								<a href="updateEmp.jsp?id=<%=e.getId() %>">修改</a>
							</td>
						</tr>
					<% i++; %>
					<% }%>
				</table>
				<p>
					<input type="button" class="button" value="添加" onclick="location='addEmp.jsp'"/> 
				</p>
			</div>
		</div>
		<div id="footer">
			<div id="footer_bg">ABC@126.com</div>
		</div>
	</div>
</body>
  • 3.3.2 信息添加界面
    主要代码:
<form action="load" method="post">
						<table cellpadding="0" cellspacing="0" border="0">
							<tr>
								<td valign="middle" align="right">姓名:</td>
								<td valign="middle" align="left"><input type="text" class="inputStr" name="uname"/></td>
							</tr>
							
							<tr>
								<td valign="middle" align="right">年龄:</td>
								<td valign="middle" align="left"><input type="text" class="inputStr" name="age"/></td>
							</tr>
							
							<tr>
								<td valign="middle" align="right">工作:</td>
								<td valign="middle" align="left"><input type="text" class="inputStr" name="job"/></td>
							</tr>
							
							<tr>
								<td valign="middle" align="right">工资:</td>
								<td valign="middle" align="left"><input type="text" class="inputStr" name="salary"/></td>
							</tr>
							
							<tr>
								<td valign="middle" align="right">部门号:</td>
								<td valign="middle" align="left"><input type="text" class="inputStr" name="deptId"/></td>
							</tr>
						</table>
						<p>
							<input type="submit" class="button" value="提交"/>
						</p>
					</form>
  • 3.3.3 信息修改界面
    主要代码:

```javascript
<div class="page_">
		<div class="top_ ">
			<p class="h1">修改员工信息</p>
		</div>					
				<div id="content">	
				<div id="content">
					<p id="whereami">
					</p>
					<% EmployeeDao dao = new EmployeeDao();%>
					<% Integer id =  Integer.parseInt( request.getParameter("id") );%>
					<% Employee e = dao.findById( id) ;%>
					<form action="UpdateEmp" method="post">
					<input type="text" class="inputStr" name="id" value="<%=id%>" style="visibility:hidden"/>
					<table class="table">
						<tr>
							<td valign="middle" align="right">Name:</td>
							<td valign="middle" align="left"><input type="text" class="inputStr" name="uname" value="<%=e.getUname()%>"/></td>
						</tr>
						<tr>
							<td valign="middle" align="right">Age:</td>
							<td valign="middle" align="left"><input type="text" class="inputStr" name="age" value="<%=e.getAge()%>"/></td>
						</tr>
						<tr>
							<td valign="middle" align="right">Job:</td>
							<td valign="middle" align="left"><input type="text" class="inputStr" name="job" value="<%=e.getJob()%>"/></td>
						</tr>
						<tr>
							<td valign="middle" align="right">Salary:</td>
							<td valign="middle" align="left"><input type="text" class="inputStr" name="salary" value="<%=e.getSalary()%>"/></td>
						</tr>
						<tr>
							<td valign="middle" align="right">DeptId:</td>
							<td valign="middle" align="left"><input type="text" class="inputStr" name="deptId" value="<%=e.getDeptId()%>"/></td>
						</tr>
					</table>
					<br><br>
					<input type="submit" value="确定修改"/>
				</form>
				</div>
			</div>
			<div id="footer">
				<div id="footer_bg">
					ABC@126.com
				</div>
			</div>
		</div>
  • 3.3.4 相关实现方法
    (1)查询全部结果
public ArrayList<Employee> finAll(){
		Connection conn=null;
		ArrayList<Employee> emps=new ArrayList<Employee>();
		Employee emp=null;
		PreparedStatement pst=null;
		String sql="select e.id,e.uname,e.salary,e.job,e.age,d.dname from employee e,dept d where e.deptid=d.id";
		
		try {
			conn=DBUtils.getConn();
			pst = conn.prepareStatement(sql);
			ResultSet rs=pst.executeQuery();
			while(rs.next()){
				Integer id =rs.getInt("id");
				String uname=rs.getString("uname");
				Integer age =rs.getInt("age");
				String job=rs.getString("job");
				Integer salary =rs.getInt("salary");
				String dname=rs.getString("dname");
				emp=new Employee(id,uname,age,job,salary,dname);
				emps.add(emp);
			}
			return emps;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(pst!=null){
				DBUtils.close(null, pst);
			}
			if(conn!=null){
				DBUtils.close(conn, null);
			}
		}
		return null;
	}

(2)通过Id查找

public Employee findById(Integer ids){
		Connection conn=null;
		PreparedStatement pst=null;
		ResultSet rs=null;
		Employee emp=null;
		String sql="select e.id,e.uname,e.age,e.job,e.salary,d.dname from employee e join dept d on e.deptid=d.id  where e.id=?";
		try {
			conn=DBUtils.getConn();
			pst=conn.prepareStatement(sql);
			pst.setInt(1, ids);
			rs=pst.executeQuery();
			while(rs.next()){
				Integer id=rs.getInt("id");
				String uname=rs.getString("uname");
				Integer age=rs.getInt("age");
				String job=rs.getString("job");
				Integer salary=rs.getInt("salary");
				String dname=rs.getString("dname");
				emp=new Employee(id,uname,age,job,salary,dname);
			}
			return emp;		
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(pst!=null){
				DBUtils.close(null, pst);
			}
			if(conn!=null){
				DBUtils.close(conn, null);
			}
		}
		return null;	
	}

(3)修改员工信息

public boolean updateEmp(Employee emp){
		Connection conn=null;
		PreparedStatement pst=null;
		String sql="update employee e,dept d set e.id=?,e.uname='?',e.age='?',e.job='?',e.salary=?,d.dname='?' where e.id=? and d.id=e.id";
		try {
				conn=DBUtils.getConn();
				pst=conn.prepareStatement(sql);
				pst.setInt(1, emp.getId());
				pst.setString(2, emp.getUname());
				pst.setInt(3, emp.getAge());
				pst.setString(4,emp.getJob());
				pst.setString(5, emp.getDname());
				pst.setInt(6, emp.getId());
				int count=pst.executeUpdate();
				if(count>0){
					return true;
				}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(pst!=null){
				DBUtils.close(null, pst);
			}
			if(conn!=null){
				DBUtils.close(conn, null);
			}
		}
		return false;
		
}

(4)添加信息

public void insertEmp(Employee emp){
		Connection conn=null;
		PreparedStatement pst=null;
		String sql="insert into employee value(null,?,?,?,?,?,1)";
		try {
			conn=DBUtils.getConn();
			pst=conn.prepareStatement(sql);
			pst.setString(1, emp.getUname());
			pst.setInt(2, emp.getAge());
			pst.setString(3,emp.getJob());
			pst.setInt(4,emp.getSalary());
			pst.setInt(5, emp.getDeptid());
			pst.executeUpdate();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		finally{
			if(pst!=null){
				DBUtils.close(null, pst);
			}
			if(conn!=null){
				DBUtils.close(conn, null);
			}
		}
	}

(5)模糊搜索

public ArrayList<Employee> vagueFind(String name){
		Connection conn=null;
		PreparedStatement pst=null;
		//结果集
		ResultSet rs=null;
		Employee emp=null;
		ArrayList<Employee> emps=new ArrayList<Employee>();
		String sql="select e.id,e.uname,e.age,e.job,e.salary,d.dname from employee e join dept d on e.deptid=d.id  where e.uname like ?";
		try {
			conn=DBUtils.getConn();
			pst=conn.prepareStatement(sql);
			pst.setString(1, "%"+name+"%");
			rs=pst.executeQuery();//存结果
		
			while(rs.next()){
				Integer id=rs.getInt("id");
				String uname=rs.getString("uname");
				Integer age =rs.getInt("age");
				String job=rs.getString("job");
				Integer salary =rs.getInt("salary");
				String dname=rs.getString("dname");
				emp=new Employee(id,uname,age,job,salary,dname);
				emps.add(emp);
			}
			return emps;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(pst!=null){
				DBUtils.close(null, pst);
			}
			if(conn!=null){
				DBUtils.close(conn, null);
			}
		}
		return null;
	}

(6)删除员工信息

public boolean delEmp(Integer id){
		Connection conn=null;
		PreparedStatement pst=null;
		String sql="delete from employee where id=?";
		try {
			conn=DBUtils.getConn();
			pst=conn.prepareStatement(sql);
			pst.setInt(1, id);
			int count=pst.executeUpdate();
			
			if(count>0){
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(pst!=null){
				DBUtils.close(null, pst);
			}
			if(conn!=null){
				DBUtils.close(conn, null);
			}
		}
		return false;
	}
  • 3.3.5 相关servlet类
    (1)删除业务
public class DelEmpService extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			 {
		Integer id=Integer.parseInt(req.getParameter("id"));
		EmployeeDao dao=new EmployeeDao();
		boolean flag=dao.delEmp(id);
		if(flag){
			try {
				resp.sendRedirect("emplist");
			} catch (IOException e) {
				
				e.printStackTrace();
			}//通过web转发到emplist.jsp
		}else{
			// TODO Auto-generated catch block
		}
	}

}

(2)显示业务

public class EmpListService extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");//设置编码字符集
		EmployeeDao dao=new EmployeeDao();//初始化EmployeeDao类
		ArrayList<Employee> emps=dao.finAll();//拿数据
		req.setAttribute("emps", emps);//绑定数据
		req.getRequestDispatcher("/emplist.jsp").forward(req, resp);//获得转发器并转发
	}
}

(3)通过Id查询业务

protected void service(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException
	{
		req.setCharacterEncoding("utf-8");//设置编码字符集
		Integer id=Integer.parseInt(req.getParameter("id"));
		
		//System.out.println("******"+id);
		EmployeeDao dao=new EmployeeDao();
		Employee emp=null;
		if(id!=null){
			emp=dao.findById(id);
		req.setAttribute("emp", emp);
		try {
			req.getRequestDispatcher("/updateEmp.jsp").forward(req, resp);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	  }
	}

(4)添加业务

protected void service(HttpServletRequest req, HttpServletResponse resp)
			{
		resp.setCharacterEncoding("utf-8");
		String uname=req.getParameter("uname");
		Integer age=Integer.parseInt(req.getParameter("age"));
		String job=req.getParameter("job");
		Integer salary=Integer.parseInt(req.getParameter("salary"));
		Integer deptid=Integer.parseInt(req.getParameter("deptid"));
		Employee emp=new Employee(uname, age, job, salary, deptid);
		EmployeeDao dao=new EmployeeDao();
		dao.insertEmp(emp);
		try {
			resp.sendRedirect("emplist");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

(5)模糊查询业务

protected void service(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException{
		req.setCharacterEncoding("utf-8");
		String uname=req.getParameter("VagueName");
		//System.out.println(uname);
		EmployeeDao dao=new EmployeeDao();
		ArrayList<Employee> emps=dao.vagueFind(uname);
		req.setAttribute("emps", emps);
		try {
			req.getRequestDispatcher("/emplist.jsp").forward(req, resp);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	

(6)修改业务

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub		
		req.setCharacterEncoding("utf-8");
		//System.out.println("*******************************");
		int id =Integer.parseInt(req.getParameter("id"));
		String uname=req.getParameter("uname");
		String job =req.getParameter("job");
		String dname=req.getParameter("dept");
		int salary =Integer.parseInt(req.getParameter("salary"));
		int age=Integer.parseInt(req.getParameter("age"));		
		Employee emp =new Employee(id, uname, age, job, salary, dname);
		ArrayList<Employee> emps= null;
		EmployeeDao dao=new EmployeeDao();			
		dao.modify(emp);
		
		emps=dao.findAll();
		req.setAttribute("emp", emps);
		req.getRequestDispatcher("emplist").forward(req, resp);				
	}
  • 3.4 服务配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Course6_2</display-name>

  
	<servlet>
		<servlet-name>login</servlet-name>
		<servlet-class>cn.ahpu.service.LoginService</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>login</servlet-name>
		<url-pattern>/login</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>emplist</servlet-name>
		<servlet-class>cn.ahpu.service.EmpListService</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>emplist</servlet-name>
		<url-pattern>/emplist</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>del</servlet-name>
		<servlet-class>cn.ahpu.service.DelEmpService</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>del</servlet-name>
		<url-pattern>/delEmp</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>load</servlet-name>
		<servlet-class>cn.ahpu.service.LoadService</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>load</servlet-name>
		<url-pattern>/load</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>vague</servlet-name>
		<servlet-class>cn.ahpu.service.VagueEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>vague</servlet-name>
		<url-pattern>/vagueEmp</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>UpdateEmp</servlet-name>
		<servlet-class>cn.ahpu.service.updateEmpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>UpdateEmp</servlet-name>
		<url-pattern>/UpdateEmp</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>rMain</servlet-name>
		<servlet-class>cn.ahpu.service.RMain</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>rMain</servlet-name>
		<url-pattern>/rMain</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>alterR</servlet-name>
		<servlet-class>cn.ahpu.service.alterR</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>alterR</servlet-name>
		<url-pattern>/alterR</url-pattern>
	</servlet-mapping>
	
	<servlet>
  	<servlet-name>modify</servlet-name>
  	<servlet-class>cn.ahpu.service.ModifyService</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>modify</servlet-name>
  	<url-pattern>/modify</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>PMain</servlet-name>
  	<servlet-class>cn.ahpu.service.PersonInfoService</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>PMain</servlet-name>
  	<url-pattern>/PMain</url-pattern>
  </servlet-mapping>

  
   <servlet>
  	<servlet-name>doAlterP</servlet-name>
  	<servlet-class>cn.ahpu.service.DoAlterPService</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>doAlterP</servlet-name>
  	<url-pattern>/doAlterP</url-pattern>
  </servlet-mapping>
  
   <servlet>
  	<servlet-name>findPId</servlet-name>
  	<servlet-class>cn.ahpu.service.FindPIdService</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>findPId</servlet-name>
  	<url-pattern>/findPId</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>deptMain</servlet-name>
    <servlet-class>cn.ahpu.service.DeptMainService</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>deptMain</servlet-name>
    <url-pattern>/deptMain</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>findDept</servlet-name>
    <servlet-class>cn.ahpu.service.FindDeptService</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>findDept</servlet-name>
    <url-pattern>/findDept</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>modify1</servlet-name>
    <servlet-class>cn.ahpu.service.UpdateDeptService</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>modify1</servlet-name>
    <url-pattern>/modify1</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>load1</servlet-name>
    <servlet-class>cn.ahpu.service.LoadDeptService</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>load1</servlet-name>
    <url-pattern>/load1</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>dept</servlet-name>
    <servlet-class>cn.ahpu.service.DeptMainService</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>dept</servlet-name>
    <url-pattern>/dept</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>delDept</servlet-name>
    <servlet-class>cn.ahpu.service.DelDeptService</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>delDept</servlet-name>
    <url-pattern>/delDept</url-pattern>
  </servlet-mapping>
  
</web-app>
  • 4系统测试
  • 4.1登录测试
    运行截图:

在这里插入图片描述

  • 4.2员工信息管理测试

在这里插入图片描述

在这里插入图片描述

  • 4.3 部门信息管理测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 4.4 个人信息管理测试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 4.4 个人信息管理测试

在这里插入图片描述
在这里插入图片描述

  • 4.5权限管理测试
    在这里插入图片描述
    在这里插入图片描述

项目下载

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值