用户登录 部门管理的src

1

package com.attendance.bean;

public class Department {
	//set.get.构造方法无参+有参,toString
	private String departmentId;// 部门编号
	private String departmentName;// 部门名称
	private String name;// 负责人
	private String totalUser;// 总人数
	private String createTime;// 创建时间
	private String manager;
	
	public Department() {
		// TODO Auto-generated constructor stub
	}
	
	public Department(String departmentId, String departmentName, String name, String totalUser, String createTime,
			String manager) {
		super();
		this.departmentId = departmentId;
		this.departmentName = departmentName;
		this.name = name;
		this.totalUser = totalUser;
		this.createTime = createTime;
		this.manager = manager;
	}
	public String getDepartmentId() {
		return departmentId;
	}
	public void setDepartmentId(String departmentId) {
		this.departmentId = departmentId;
	}
	public String getDepartmentName() {
		return departmentName;
	}
	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTotalUser() {
		return totalUser;
	}
	public void setTotalUser(String totalUser) {
		this.totalUser = totalUser;
	}
	public String getCreateTime() {
		return createTime;
	}
	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}
	public String getManager() {
		return manager;
	}
	public void setManager(String manager) {
		this.manager = manager;
	}
	@Override
	public String toString() {
		return "Department [departmentId=" + departmentId + ", departmentName=" + departmentName + ", name=" + name
				+ ", totalUser=" + totalUser + ", createTime=" + createTime + ", manager=" + manager + "]";
	}
	
}

2

package com.attendance.bean;

/**
 * 
 * @author 用户信息
 */
public class UserInfoBean {
	private String id;
	private String account;
	private String password;
	private String name;
	private String departmentId;
	private String sex;
	private String birthday;
	private String mobile;
	private String email;
	private String usertype;
	private String create_time;
	private String mylevel;
	private String state;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getAccount() {
		return account;
	}
	public void setAccount(String account) {
		this.account = account;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDepartmentId() {
		return departmentId;
	}
	public void setDepartmentId(String departmentId) {
		this.departmentId = departmentId;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getBirthday() {
		return birthday;
	}
	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getUsertype() {
		return usertype;
	}
	public void setUsertype(String usertype) {
		this.usertype = usertype;
	}
	public String getCreate_time() {
		return create_time;
	}
	public void setCreate_time(String create_time) {
		this.create_time = create_time;
	}
	public String getMylevel() {
		return mylevel;
	}
	public void setMylevel(String mylevel) {
		this.mylevel = mylevel;
	}
	public String getState() {
		return state;
	}
	public void setState(String state) {
		this.state = state;
	}
	@Override
	public String toString() {
		return "UserInfoBean [id=" + id + ", account=" + account + ", password=" + password + ", name=" + name
				+ ", departmentId=" + departmentId + ", sex=" + sex + ", birthday=" + birthday + ", mobile=" + mobile
				+ ", email=" + email + ", usertype=" + usertype + ", create_time=" + create_time + ", mylevel="
				+ mylevel + ", state=" + state + "]";
	}
	


}

3.

package com.attendance.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.attendance.bean.Department;

public interface DeptDao {
	/**
	 * 根据起始记录数、结束记录数以及检索条件,获取当前页的部门信息列表
	 * @param fromCount 起始记录数
	 * @param endCount 截止记录数
	 * @param queryInforMap 检索条件
	 * @return List 当前页的数据列表
	 */
	public List getComponentPageList(int fromCount, int endCount,HashMap queryInforMap);
	
	/**
	 * 根据检索条件,获取满足条件的记录总数
	 * @param queryInforMap
	 * @return 总记录数
	 */
	public int getTotalRecordNumber(HashMap<String,String> queryInforMap);

	/**
	 * 负责人下拉框
	 * @return
	 */
	public Map<String,String> deptSeekUser();
	
	/**
	 * 自动生成部门编号
	 * @return
	 */
	public String getDeptId();
	/**
	 * 添加部门信息
	 * @param dept
	 */
	public void insertDept(Department department);
	/**
	 * 修改部门信息
	 * @param dept
	 */
	public void updateDept(Department department);
	public void deleteDept(String deptId);
}

4.

package com.attendance.dao;

public interface LoginDao {
	public String login(String account,String password) ;
		
}

5

package com.attendance.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.attendance.bean.Department;
import com.attendance.bean.UserInfoBean;
import com.attendance.dao.DeptDao;

import common.util.ConnectionPool;
import common.util.FieldCheck;

public class DeptDaoImpl implements DeptDao{

	private Connection conn = null;
	private PreparedStatement pstmt = null;
	private ResultSet rs = null;

	/**
	 * 根据检索条件得到部门列表  部门一览查询
	 */
	public List getComponentPageList(int fromCount, int endCount,HashMap queryInforMap) {
		List<Department> deptList = new ArrayList<Department>();
		// 1.获取连接
		conn = ConnectionPool.getConn();
		// 2.创建sql
		String sql = "select * from (select rownum rn,d.department_id,d.department_name,u.name,u.account,d.total_user,d.create_time  from t_department d, t_user_info u where d.manager = u.account and d.department_name like '%' || ? || '%') where rn>=? and rn<=?";

		try {
			// 3.给占位符赋值
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, FieldCheck.convertNullToEmpty((String) queryInforMap.get("departmentName")));
			pstmt.setInt(2, fromCount);
			pstmt.setInt(3, endCount);
			// 4.发送执行sql
			rs = pstmt.executeQuery();
			// 5.从结果集中取数据
			while (rs.next()) {
				Department dept = new Department();
				dept.setDepartmentId(rs.getString("department_id"));
				dept.setDepartmentName(rs.getString("department_name"));
				dept.setManager(rs.getString("account"));
				dept.setName(rs.getString("name"));
				dept.setTotalUser(rs.getString("total_user"));
				dept.setCreateTime(rs.getString("create_time"));
				deptList.add(dept);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			ConnectionPool.close(pstmt, rs, conn);
		}

		return deptList;
	}

	/**
	 * 得到总的记录条数 
	 */
	public int getTotalRecordNumber(HashMap<String, String> queryInforMap) {
		int totalNum=0;
		// 1.获取连接
		conn = ConnectionPool.getConn();
		// 2.创建sql
		String sql = "select count(*) num from t_department d, t_user_info u where d.manager = u.account and d.department_name like '%' || ? || '%'";
		try {
			// 3.给占位符赋值
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, FieldCheck.convertNullToEmpty(queryInforMap.get("departmentName")));

			// 4.发送执行sql
			rs = pstmt.executeQuery();
			// 5.从结果集中取数据:得到总的记录条数 
			while (rs.next()) {
				totalNum = rs.getInt("num");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			ConnectionPool.close(pstmt, rs, conn);
		}
		return totalNum;
	}

	
	/**
	 * 自动生成部门编号
	 * @return
	 */
	public String getDeptId(){
		int deptId=0;
		try{
			// 1.获取连接
			conn= ConnectionPool.getConn();
            
			//3.创建sql+赋值+发送执行sql
			pstmt = conn.prepareStatement("select max(department_id) from t_department");
			rs = pstmt.executeQuery();
			if (rs.next()) 
				deptId = rs.getInt(1);	
			}catch (Exception ex) {
				ex.printStackTrace();
			} finally {
				ConnectionPool.close(pstmt, rs, conn);
			}
		    String deptIdS=String.valueOf(deptId+1);
		return deptIdS;
		}
	
	/**
	 * 查询添加部门时负责人下拉框
	 * @return
	 */
	public Map<String,String> deptSeekUser(){
		Map<String,String> userMap=new HashMap();
		// 1.获取连接
		conn = ConnectionPool.getConn();
	    //2.创建sql
		String sql ="select account,name from t_user_info";
		try{
			//3.给占位符赋值
			pstmt = conn.prepareStatement(sql);
			//4.发送执行sql
			rs = pstmt.executeQuery();
			//5.从结果集中取数据
			while (rs.next()) {
				UserInfoBean user=new UserInfoBean();
				user.setName(rs.getString("name"));
				user.setAccount(rs.getString("account"));
				userMap.put(user.getAccount(),user.getName());
				}
			}catch (SQLException e) {
				e.printStackTrace();
				} finally {
					//5.关闭结果集
					ConnectionPool.close(pstmt, rs, conn);
					}
		return userMap;
		}
	/**
	 * 插入部门信息
	 */
	public void insertDept(Department department) {
		System.out.println("DeptDaoImpl==insertDepart===");
		Connection conn=null;
		PreparedStatement pstmt=null;
		int rs=0;
		try{
			// 1.获取连接
			conn = ConnectionPool.getConn();
			//2.创建sql
			String sql ="insert into t_department(department_Id,department_Name,manager,total_User,create_Time) values(?,?,?,?,to_date(?,'YYYY-MM-DD HH24:MI:SS '))";
			//3.给占位符赋值
			pstmt = conn.prepareStatement(sql);
			System.out.println("DeptDaoImpl==insertDepart===department.getDepartmentId()="+department.getDepartmentId());
			pstmt.setString(1,department.getDepartmentId());
			System.out.println("DeptDaoImpl==insertDepart===department.getDepartmentName()="+department.getDepartmentName());
			pstmt.setString(2,department.getDepartmentName());
			System.out.println("DeptDaoImpl==insertDepart===department.getManager()="+department.getManager());
			pstmt.setString(3,department.getManager());
			pstmt.setString(4,"0");
			pstmt.setString(5, department.getCreateTime());
			System.out.println("DeptDaoImpl==insertDepart===department.getCreateTime()="+department.getManager());
			//4.发送执行sql
			int i= pstmt.executeUpdate();
			if(i>=1){
				System.out.println("部门表插入成功");
				}else{
					System.out.println("部门表插入失败");
					}
			}catch (SQLException e) {
				e.printStackTrace();
				}finally {
					//5.关闭结果集
					ConnectionPool.close(pstmt,conn);
					}
		}
	
		/**
		 * 修改部门信息
		 */
		
		public void updateDept(Department department) {
		 System.out.println("DeptDaoImpl==insertDepart===");
		 Connection conn=null;
		 PreparedStatement pstmt=null;
		 ResultSet rs =null;
		 int i=0;
		 try{
			 conn = ConnectionPool.getConn();
			 String sql ="update t_department set department_Name=?,manager=? where department_Id=?";
			 pstmt = conn.prepareStatement(sql);
			 System.out.println("DeptDaoImpl==insertDepart===department.getDepartmentName()="+department.getDepartmentName());
			 pstmt.setString(1,department.getDepartmentName());
			 System.out.println("DeptDaoImpl==insertDepart===department.getDepartmentId()="+department.getManager());
			 pstmt.setString(2,department.getManager());
			 System.out.println("DeptDaoImpl==insertDepart===department.getDepartmentId()="+department.getDepartmentId());
			 pstmt.setString(3,department.getDepartmentId());
			
			
			
		     i= pstmt.executeUpdate();
			 if(i>=1){
				 System.out.println("部门表修改成功"); 
			 }else{
				 System.out.println("部门表修改失败"); 
			 }
		    }catch (SQLException e) {
				e.printStackTrace();
			} finally {
				//5.关闭结果集
				ConnectionPool.close(pstmt,conn);
			}
		 }
		/**
		 * 删除部门信息
		 */
		public void deleteDept(String deptId){
			Connection conn=null;
			PreparedStatement pstmt=null;
			ResultSet rs =null;
			try{//加载驱动2.建立链接
				conn=ConnectionPool.getConn();
					//3.发送sql
				String sql ="delete from t_department  where department_Id=?";
				 pstmt = conn.prepareStatement(sql);
				 pstmt.setString(1,deptId);
				int i=pstmt.executeUpdate();
				if(i>=1){
					System.out.println("删除成功");
				}else{
					System.out.println("删除失败");
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				ConnectionPool.close(pstmt,conn);
			}
				
		}
		
		}

6

package com.attendance.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.attendance.dao.LoginDao;

import common.util.ConnectionPool;

public class LoginDaoImpl implements LoginDao {

	@Override
	public String login(String account, String password) {
		//方便返回mylevel
		String mylevel=null;
		//(1)建立连接
		Connection connection=ConnectionPool.getConn();
		//(2)验证:执行sql语句验证用户是否存在,如果存在用户的身份是什么_?为占位符,后面插入数据
		String sql="select mylevel from t_user_info where account=? and password=?";
		//(3)执行sql语句
		try {//抛出异常
			//连接
			PreparedStatement preparedStatement=connection.prepareStatement(sql);
			//传递参数?
			preparedStatement.setString(1, account);
			preparedStatement.setString(2, password);
			//执行
			ResultSet resultSet=preparedStatement.executeQuery();
			
			//resultSet中如果由数据,证明输入的用户名和密码正确; resultSet中没有数据,证明用户不存在或用户名密码不正确
			if(resultSet.next()) {
				mylevel=resultSet.getString(1);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return mylevel;
	}

}

7.

package com.attendance.service;

import java.util.Map;

import com.attendance.bean.Department;

public interface DeptService {
	/**
	 * 负责人下拉框
	 * @return
	 */
		public Map<String, String> deptSeekUser();
	/**
	 * 自动生成部门编号
	 */
		public String getDeptId();
		public void insertDept(Department dept);
		public void updateDept(Department dept);
		public void deleteDept(String deptId);

}

8.

package com.attendance.service;

public interface LoginService {
	public String login(String account,String password);
}

9.

package com.attendance.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.attendance.bean.Department;
import com.attendance.dao.DeptDao;
import com.attendance.dao.impl.DeptDaoImpl;
import com.attendance.service.DeptService;

import common.service.PageInforService;

public class DeptServiceImpl extends PageInforService implements DeptService{

	/**
	 * 负责人下拉框
	 */
	public Map<String, String> deptSeekUser() {
		DeptDao deptDao=new DeptDaoImpl();
		return deptDao.deptSeekUser();
	}

	/**
	 * 自动生成部门编号
	 */
	@Override
	public String getDeptId() {
		DeptDao deptDao=new DeptDaoImpl();
		return deptDao.getDeptId();
	}

	@Override
	public void insertDept(Department dept) {
		DeptDao deptDao=new DeptDaoImpl();
		deptDao.insertDept(dept);
	}

	@Override
	public void updateDept(Department dept) {
		DeptDao deptDao=new DeptDaoImpl();
		deptDao.updateDept(dept);
	}

	@Override
	public void deleteDept(String deptId) {
		DeptDao deptDao=new DeptDaoImpl();
		deptDao.deleteDept(deptId);
	}

	//取得部门一览总件数_根据检索条件,获取满足条件的记录总数
	public int getTotalRecordNumber(HashMap queryInforMap) {
		DeptDao deptDao = new DeptDaoImpl();
		return deptDao.getTotalRecordNumber(queryInforMap);
	}

	//取得部门一览:根据起始记录数、结束记录数以及检索条件,获取当前页的部门信息列表
	@Override
	public List<Department> getComponentPageList(int formCount, int endCount, HashMap queryInforMap) {
		DeptDao deptDao = new DeptDaoImpl();
		return deptDao.getComponentPageList(formCount, endCount, queryInforMap);
	}

}

10

package com.attendance.service.impl;

import com.attendance.dao.LoginDao;
import com.attendance.dao.impl.LoginDaoImpl;
import com.attendance.service.LoginService;

/**
 * 接口层:servlet->impl接口层交互->loginservice
 * 接口不需要具体的实现代码
 * service变动不妨碍servlet;serviceimpl变动时会影响
 * @author 戴尔
 *代码的独立性
 *实现业务的交互
 */

public class LoginServiceImpl implements LoginService {

	@Override     //重写方法
	public String login(String account, String password) {
		LoginDao loginDao=new LoginDaoImpl();
		return loginDao.login(account, password);
	}
	
}

11

package com.attendance.servlet;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.attendance.bean.Department;
import com.attendance.service.DeptService;
import com.attendance.service.impl.DeptServiceImpl;


public class DeptCudServlet extends HttpServlet {

    public DeptCudServlet() {
        super();
    }	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
		}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		
		//接收用户从前台发出的请求,判断添加、删除、修改还是批量删除操作,
		//到相应的方法进行操作
		String method = request.getParameter("method");
		System.out.println("DeptCudServlet=doPost=method==="+method);
		if("insert".equals(method)){//用户查询列表页面点击新增按钮
		    deptSearch(request,response);
		}
		else if("insertSave".equals(method)){//新增用户保存工作
		    insertDept(request,response);
		}
		else if("update".equals(method)){//用户修改工作
		    deptSeek(request,response);
		}
		else if("updateSave".equals(method)){//修改用户保存工作
		    updateDept(request,response);
		}
		else if("delete".equals(method)){//单行删除
		   deleteDept(request,response);
		}else if("delMany".equals(method)){//删除多个用户
			deleteManyDept(request,response);
		}
	}
	
	/**
	 * 部门新增列表页面点击新增:转向到用户增加页面
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void deptSearch(HttpServletRequest request,HttpServletResponse response) 
		throws ServletException, IOException {
		//改HashMap();
			Map<String,String> map = new HashMap();
			DeptService deptService = new DeptServiceImpl();
			map=deptService.deptSeekUser();//查询
			request.setAttribute("userMap", map);//放入
			request.getRequestDispatcher("/pages/dept/deptInsert.jsp").forward(request, response);	
					}
	/**新增用户保存工作
	 * 
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void insertDept(HttpServletRequest request,HttpServletResponse response) 
			throws ServletException, IOException {

		//1.往部门表插入数据
		//获取部门编号
		String deptid = request.getParameter("deptid");
		//获取部门名称
		String deptname = request.getParameter("deptname");
		deptname = new String(deptname.getBytes("iso-8859-1"),"utf-8");

		System.out.println("**********************====deptNamea====="+deptname);
		//获取部门负责人
		String managerId = request.getParameter("managerId");
		
		System.out.println("**********************"+managerId);
		
		//获取当前系统时间
		Date day=new Date();    
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
		String createTime=df.format(day);
		System.out.println("**********************"+createTime);
		
		//将四个参数放到dep中
		DeptService deptServiceImpl = new DeptServiceImpl();
		Department dept = new Department();
		dept.setDepartmentId(deptid);
		dept.setDepartmentName(deptname);
		dept.setManager(managerId);
		dept.setCreateTime(createTime);
		deptServiceImpl.insertDept(dept);
		//转向到部门查询列表页面
		request.getRequestDispatcher("deptServlet?method=firstPage").forward(request, response);
		
	}
	/*
	 * 用户修改列表页面点击修改:转向到用户修改页面
	 * @param request
	 * @param reponse
	 * @throws ServletException
	 * @throws IOException
	 
	 */
	public void deptSeek(HttpServletRequest request,HttpServletResponse response) 
		throws ServletException, IOException {
				//获取部门编号
				String deptId = request.getParameter("deptId");
				//获取部门名称
				String deptName = request.getParameter("deptName");

				deptName = new String(deptName.getBytes("iso-8859-1"),"utf-8");
				System.out.println("**********************====deptNamea====="+deptName);
				//获取部门负责人
				String manager = request.getParameter("manager");
				
				Department dept=new Department();
				dept.setDepartmentId(deptId);
				dept.setDepartmentName(deptName);
				dept.setManager(manager);
				
			Map<String , String > map = new HashMap();
			DeptService deptService = new DeptServiceImpl();
			map=deptService.deptSeekUser();
			request.setAttribute("userMap", map);
			request.setAttribute("dept", dept);
			request.getRequestDispatcher("/pages/dept/deptUpdate.jsp").forward(request, response);
	}
	
	/**
	 * 部门的修改
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void updateDept(HttpServletRequest request,HttpServletResponse response) 
			throws ServletException, IOException {
		//1.往部门表修改数据
		//获取部门编号
		String deptid = request.getParameter("deptid");
		//获取部门名称
		String deptname = request.getParameter("deptname");
		deptname = new String(deptname.getBytes("iso-8859-1"),"utf-8");
		//获取部门负责人
		String managerId = request.getParameter("managerId");
		
		
		//将三个参数放到dep中
		DeptService deptServiceImpl = new DeptServiceImpl();
		Department dept = new Department();
		dept.setDepartmentId(deptid);
		dept.setDepartmentName(deptname);
		dept.setManager(managerId);
		deptServiceImpl.updateDept(dept);
		//转向到部门查询列表页面
		request.getRequestDispatcher("deptServlet?method=firstPage").forward(request, response);
		
		
		
	}
	public void deleteDept(HttpServletRequest request,HttpServletResponse response) 
			throws ServletException, IOException {
		//1.往部门表删除单行数据
		//获取部门编号
		String deptId = request.getParameter("deptId");
		
		System.out.println("**********************====deptId"+deptId);
	
		DeptService deptServiceImpl = new DeptServiceImpl();
		
		deptServiceImpl.deleteDept(deptId);
		//转向到部门查询列表页面
		request.getRequestDispatcher("deptServlet?method=firstPage").forward(request, response);
		
		
		
	}
	public void deleteManyDept(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
		String deptIdS=request.getParameter("deptIdS");
		String[]  deptId= deptIdS.split(",");
		for(int i=0;i<deptId.length;i++){
			DeptService deptservice=new DeptServiceImpl();
			String temp=deptId[i];
			deptservice.deleteDept(temp);
		}
		//2.返回到用户查询页面
	
		request.getRequestDispatcher("deptServlet?method=firstPage").forward(request, response);
	}

}

12

package com.attendance.servlet;

import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.attendance.service.impl.DeptServiceImpl;

import common.controller.PageListBaseServlet;


/**
 * @author 戴尔
 *部门分页的功能实现servlet处理器-DeptPageListServlet
 */
public class DeptPageListServlet extends PageListBaseServlet {

	/**
	 * 初始化PageInforBean
	 */
	@Override
	public void initPageInforBean(HttpServletRequest request, HttpServletResponse response) {
		//获取页面中的部门名字
		String departmentName=request.getParameter("departmentName");
		
		//把搜索条件存入session
		HttpSession session=request.getSession();
		session.setAttribute("departmentName", departmentName);
		
		//将检索条件封装到pageInforBean
		HashMap<String, String> hm=new HashMap<>();
		hm.put("departmentName", departmentName);
		
		//获取分页实体
		super.getPageInforBean().setHm(hm);
		//查询:调用父类的方法_底层(DaoImpl)和数据库建立连接之后,查询到的数据
		super.setPageInforService(new DeptServiceImpl());
		//jsp->servlet->service->dao
		super.setForwad("/pages/dept/deptSearch.jsp");
	}

}

13

package com.attendance.servlet;

import java.io.IOException;

import javax.security.auth.message.callback.PrivateKeyCallback.Request;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.attendance.service.LoginService;
import com.attendance.service.impl.LoginServiceImpl;

public class LoginServlet extends HttpServlet {
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doPost(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//(1)获取用户从界面上提交的用户名和密码
				//定义变量来接受从login.jsp中获取的相应的值
				String account=req.getParameter("account");
				String pass=req.getParameter("password");
				//(2)校验:将用户名和密码 与数据库中存储是数据信息去对比(利用service层进行交互)
				LoginService loginService=new LoginServiceImpl();
				String mylevel=loginService.login(account, pass);
				//从当前request中获取session,如果没有创建一个新的并返回
				HttpSession session=req.getSession();//获session
				if (mylevel!=null) {
					session.setAttribute("mylevel", mylevel);
					//有用户的时候,用response.sendRedirect跳转到主页面
				 	resp.sendRedirect("main.jsp");
				}else {//如果没有用户,显示提示信息   并用请求转发回到登录界面
					req.setAttribute("error","登录名或密码不正确!!!");
					//重定向
					//req.getRequestDispatcher(req.getContextPath()+"login.jsp");
					System.out.println(req.getContextPath());
					req.getRequestDispatcher("login.jsp").forward(req, resp); //请求转发
					
				}
	}
	
}

14

package common.bean;
/**
 * @author 戴尔
 *封装信息查询页面的相关的分页信息
 *     实现视图层、控制器、模型层数据传递--分页信息
 * 用select rownum,部门名 from 部门管理表;
 * select * from 部门管理表;(1)
 * select count(*) from 部门管理表 where manager=;
 * select t.部门id,u.name from 部门管理表  t join 用户信息表  u on t.manager=u.account; 
 * select * from 用户信息表;(2)
 */

import java.util.HashMap;
import java.util.List;

import com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations.PrivateKeyResolver;


public class PageInforBean {
	//总记录数,总条数
	private int totalNumber=0;
	
	//每页显示记录数,默认每页显示5条记录
	private int showCount=5;
	
	//总页数
	private int totalPage=0;
	
	//从当前页的开始记录
	private int formCount=0;
	
	//当前页码
	private int currentPage=0;
	
	//当前页的数据列表
	private List list=null;
	
	//存储检索条件
	private HashMap<String, String> hm;

	public int getTotalNumber() {
		return totalNumber;
	}

	public void setTotalNumber(int totalNumber) {
		this.totalNumber = totalNumber;
	}

	public int getShowCount() {
		return showCount;
	}

	public void setShowCount(int showCount) {
		this.showCount = showCount;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public int getFormCount() {
		return formCount;
	}

	public void setFormCount(int formCount) {
		this.formCount = formCount;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}

	public HashMap<String, String> getHm() {
		return hm;
	}

	public void setHm(HashMap<String, String> hm) {
		this.hm = hm;
	}

	@Override
	public String toString() {
		return "PageInforBean [totalNumber=" + totalNumber + ", showCount=" + showCount + ", totalPage=" + totalPage
				+ ", formCount=" + formCount + ", currentPage=" + currentPage + ", list=" + list + ", hm=" + hm + "]";
	}
	
}

15

package common.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.mysql.fabric.Response;
import com.sun.java_cup.internal.runtime.virtual_parse_stack;

import common.bean.PageInforBean;
import common.service.PageInforService;

/**
 * @author 戴尔
 *实现分页功能的共通代码--servlet类
 */
public abstract class PageListBaseServlet extends HttpServlet {
	//(1.1)
	//分页的抽象类
	private PageInforService pageInforService=null;
	
	//分页信息Bean
	private PageInforBean pageInforBean=null;
	
	//跳转路径
	private String forwad=null; 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		pageInforBean=new PageInforBean();
		
		//拿到每页显示多少条数据(1)
		String showCount =request.getParameter("showCount");
		//如果每页显示记录不为空或“”,将pageInforBean获取转为整型的每页显示条数。
		if (showCount!=null && !"".equals(showCount)) {
			pageInforBean.setShowCount(Integer.valueOf(showCount));
		}
		
		//(2)
		String pageNo=request.getParameter("pageNo");
		//如果每页显示记录不为空或“”,将pageInforBean获取转为整型的每页显示条数。
		if (pageNo!=null && !"".equals(pageNo)) {
			pageInforBean.setShowCount(Integer.valueOf(pageNo));
			}
		//(4)
		setPageInforBean(pageInforBean);
		initPageInforBean(request, response);
		//通过session传递数据
		HttpSession session=request.getSession();
		initPageInforBean(request,response);
		if (request.getParameter("method")!=null) {
			if (request.getParameter("method").equals("firstPage")) {
				//显示第一页内容
				session.setAttribute("pageInforBean", pageInforService.getPageInitiaList(pageInforBean));
			}else if (request.getParameter("method").equals("showPage")) {
				//非第一页,根据页码为几,显示第几页的内容
				session.setAttribute("pageInforBean", pageInforService.getPageListByPageNo(pageInforBean));
				
			}
			
		}
		response.sendRedirect(request.getContextPath()+this.forwad);
		
	}

	//(3)
	/**
	 * 初始化条件信息PageInforBean ,封装客户端传递的查询
	 * @param request
	 * @param response
	 */
	public abstract void initPageInforBean(HttpServletRequest request,HttpServletResponse response);
	
	
	
	public PageInforService getPageInforService() {
		return pageInforService;
	}

	public void setPageInforService(PageInforService pageInforService) {
		this.pageInforService = pageInforService;
	}


	public void setPageInforBean(PageInforBean pageInforBean) {
		this.pageInforBean = pageInforBean;
	}

	public String getForwad() {
		return forwad;
	}

	public void setForwad(String forwad) {
		this.forwad = forwad;
	}


	public PageInforBean getPageInforBean() {
		// TODO Auto-generated method stub
		return pageInforBean;
	}

	

}

16

package common.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class EncodingFilter implements Filter {

	private String encoding = null;

	
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		if (encoding != null) {
			request.setCharacterEncoding(encoding);
			response.setContentType(encoding);
		}
		
		chain.doFilter(request, response);
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig config) throws ServletException {
		encoding = config.getInitParameter("encoding");
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

}

17

package common.service;

import java.util.HashMap;
import java.util.List;

import common.bean.PageInforBean;

/**
 * @author 戴尔
 *实现分页功能共通的业务逻辑处理
 */

public abstract class PageInforService {

	//检索首页(1)
	public PageInforBean getPageInitiaList(PageInforBean pageInforBean) {
		pageInforBean.setCurrentPage(1);
		
		//返回首页的信息
		return getPageListByPageNo(pageInforBean);
	}
	
	/**
	 * 根据页码检索 对应页面的内容(2)
	 */
	public PageInforBean getPageListByPageNo(PageInforBean pageInforBean) {
		//检索条件
		HashMap queryInforMap=pageInforBean.getHm();
		
		//获取当前页的页码 :(当前页码-1)*每页显示条数+1
		if (pageInforBean.getCurrentPage()==1) {//若为第一页
			pageInforBean.setFormCount(1);
		}else {
			pageInforBean.setFormCount((pageInforBean.getCurrentPage()-1)*pageInforBean.getShowCount()+1);
		}
		
		//根据检索条件,查询满足条件的总记录数
		int totalNumber=getTotalRecordNumber(queryInforMap);
		pageInforBean.setTotalNumber(totalNumber);
		//总记录数%每页显示数,获取总页数
		int showCount=pageInforBean.getShowCount();
		int tmp=totalNumber%showCount;
		//余数tmp为0,正好为tmpPageNumber;不为0,为tmpPageNumber+1
		int tmpPageNumber=totalNumber/showCount;
		//获取总页数
		pageInforBean.setTotalPage(tmp==0 ? tmpPageNumber : tmpPageNumber+1);
		
		//当前页的最后一行
		int endCount=pageInforBean.getFormCount()+showCount-1;
		
		//根据起始记录数,结束记录数,检索条件,获取当前的数据列表
		pageInforBean.setList(getComponentPageList(pageInforBean.getFormCount(), endCount, queryInforMap));
		
		return pageInforBean;
	}
	
	/**
	 * 根据检索条件,获取满足条件的总记录数,根据不同的业务发生变化
	 */
	public abstract int getTotalRecordNumber(HashMap queryInforMap);
		
	
	
	/**
	 * 抽象类占位
	 */
	public abstract List getComponentPageList(int formCount,int endCount,HashMap queryInforMap) ;
		

}

18

package common.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 建立与数据库的链接的工具类
 * 
 * @author 戴尔
 *
 */
public class ConnectionPool {
	/**
	 * 建立链接,定义静态方法
	 * 
	 */
	public static Connection getConn() {
		// 定义变量接收建立的连接
		Connection conn= null;
		try {
			// 1.加就驱动,导入使用jdbc的jar包
			Class.forName("oracle.jdbc.driver.OracleDriver");
			try {
				// 2.建立连接
				//"Oracle链接地址=jdbc驱动连接:连接的是Oracle数据库:以thin的方式连接:连接@localhost本地的:访问端口号为1521:数据库实例为xe","数据库用户名","密码"
				conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "mygyn", "111111");
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					}
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				}
		return conn;
		}
	/**
	 * 
	 * 释放资源(更新时)
	 */
	public static void close(PreparedStatement stmt, Connection conn) {

		try {
			if (stmt != null) {
				stmt.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();

		}
	}
	
	
	/**
	 * 释放资源(增删)
	 */

	public static void close(PreparedStatement stmt, ResultSet rs, Connection conn) {
		// TODO Auto-generated method stub
		try {
			if (stmt != null) {
				stmt.close();
				stmt = null;
			}
			if (rs != null) {
				rs.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

19

package common.util;

public class FieldCheck {
	/**
	 * 判断字符串是否为null或空串
	 * @param str
	 * @return
	 */
	
	public static boolean isNullOrBlank(String str){
		return(str==null || str.trim().length()==0);
	}
	
	
	/**
	 * 将null转换为空
	 * @param str
	 * @return
	 */
	public static String convertNullToEmpty(String str){
		if(str==null)
			return "";
		else
			return str;
	}
	
	/**
	 * 去掉字符串两边的空格
	 * @param str
	 * @return
	 */
	
	public static String trimString(String str){
		if(str==null)
			return "";
		else
			return str.trim();
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的部门管理页面示例,使用jQuery实现动态操作HTML元素、处理表单数据和发送AJAX请求: HTML代码: ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>部门管理</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <body> <h1>部门管理</h1> <div> <h2>添加部门</h2> <form> <label>部门名称:</label> <input type="text" name="name" required> <button type="submit">添加</button> </form> </div> <div> <h2>部门列表</h2> <ul id="dept-list"> <!-- 动态添加部门列表 --> </ul> </div> <script src="dept.js"></script> </body> </html> ``` JavaScript代码(dept.js): ``` // 添加部门表单提交事件 $('form').submit(function(event) { event.preventDefault(); // 阻止表单默认提交行为 var name = $('input[name="name"]').val(); // 获取部门名称 // 发送AJAX请求添加部门 $.ajax({ url: '/api/dept/add', method: 'POST', data: { name: name }, success: function(result) { // 添加成功后动态更新部门列表 $('#dept-list').append('<li>' + name + '</li>'); $('input[name="name"]').val(''); // 清空表单输入框 }, error: function(error) { alert('添加部门失败:' + error.responseJSON.message); } }); }); // 页面加载完成后获取部门列表 $(document).ready(function() { $.ajax({ url: '/api/dept/list', method: 'GET', success: function(result) { // 动态添加部门列表 for (var i = 0; i < result.length; i++) { $('#dept-list').append('<li>' + result[i].name + '</li>'); } }, error: function(error) { alert('获取部门列表失败:' + error.responseJSON.message); } }); }); ``` 上述代码实现了以下功能: 1. 添加部门:用户在表单中输入部门名称并点击“添加”按钮,jQuery监听表单提交事件,获取表单数据并发送AJAX请求添加部门。添加成功后动态更新部门列表。 2. 获取部门列表:页面加载完成后,jQuery发送AJAX请求获取部门列表,并动态添加到页面中展示。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值