说明:
- 本篇博客展示的职工信息管理系统(JSP+Servlet+JavaBean+DAO+Service+JDBC)仅包含对职工信息的增删改查以及用户注册登录操作,前端页面仅略作修饰;
- 本篇博客以项目说明为主,具体功能实现的详细步骤请查看项目源码;
- 本项目属于纯练手项目,界面较为简陋,各位大佬轻点喷哈。
一、系统各层及组件描述
1.1 项目整体结构
1.2 系统各包所属层次及说明
层次 | 包 | 描述 |
---|---|---|
domain(域模型层) | com.me.domain | 存放JavaBean |
Dao | com.me.dao | 数据访问接口 |
com.me.dao.impl | 数据访问接口的实现类 | |
Service | com.me.service | 业务接口 |
com.me.service.impl | 业务接口的实现类 | |
controller | com.me.controller | 控制器 |
Web(表现层) | com.me.web.ui | 存放WEB-INF下页面的Servlet |
com.me.web.filter | 过滤器 | |
com.me.util | 存放数据库连接池 | |
com.me.factory | 存放Service工厂和Dao工厂 | |
com.me.exception | 存放自定义异常 |
说明:
(1)com.me.domain中创建了Staff和User两个bean对象,其中Staff对象声明了id,name,department,position,time五个成员变量,并创建了getter和setter方法;User对象声明了username,password,gender,email,usertype五个成员变量,并创建了getter和setter方法。
(2)com.me.dao中有IStaffDao以及IUserDao两个接口,其中在IStaffDao接口声明了: public int addStaff(Staff staff);
public int deleteStaff(String id);
public int updateStaff(Staff staff);
public Staff selectStaff(String id);
public List queryStaffs();
五个方法,用于实现对职工信息的增删查改,并在StaffDaoImpl中实现了这些方法。
在IUserDao接口中声明了:
User selectOneByUsername(String username);
int addOneUser(User user) throws UserExistException;
User selectOneByUANDS(String username,String email)throws UserExistException;
三个方法,用于实现登录注册以及查询是否已经注册,并在UserDaoImpl中实现了这些方法。
(3)com.me.service中有IStaffService以及IUserService两个业务接口,其中在IStaffService中声明了:
public void addStaff(Staff staff);
public void deleteStaff(String id);
public Staff selectStaff(String id);
public void updateStaff(Staff staff);
public List queryStaffs();
五个方法,用于实现对职工信息的增删查改,并在StaffServiceImpl中实现了这些方法。
IUserService中声明了:
void login(String username, String password, String usertype) throws UserExistException;
void register(User user) throws UserExistException;
两个方法,用于实现用户的登录注册,并在UserServiceImpl中实现了这些方法。
(4)com.me.controller为控制器层,主要有登录注册、对职工信息进行增删查改以及管理员和职工信息显示的servlet(addservlet、adminshow、DeleteServlet、LoginServlet、normalshow、RegisterServlet、showupdateservlet、updateservlet)
(5)在Web表现层中创建了LoginUIServlet、RegisterUIServlet,用于访问WEB-INF/pages里的regist.jsp以及login.jsp;
DbcpPool用于存放数据库连接池,连接数据库。
1.3 运行环境
操作系统:Windows 10;
开发工具:eclipse 2019;Tomcat 9;Navicat Premium 12;
数据库:MySQL 5.7.28
二、系统设计
2.1 功能设计
2.2 数据库设计
E-R图:
message表(信息表),主要用来存放职工的信息。
users表(用户表),主要用来存放注册登录用户的信息。
2.3 界面设计
注册界面
登录界面
登录成功界面(管理员)
进入职工信息管理界面(管理员)
添加职工界面
修改职工界面
删除选中后点击删除即可。
职工信息列表显示即为查询功能(全局查询)。
登录成功界面(职工)
查看信息界面(职工)
2.4 程序结构设计
三、参考文献
梁胜彬、乔保军等; Java Web应用开发与实践;清华大学出版社;2016
千人斩;学生作业信息管理系统;CSDN
加鸡腿;CSDN如何插入多列表格?;CSDN
梦里梦见梦不见的;如何把eclipse的web项目导入到idea中;CSDN
PS:
(1)项目的访问方式为运行com.me.web.ui包下的LoginUIServlet或RegisterUIServlet(需要注册后才能登陆)
(2)本次项目使用的IDE是eclipse,关于如何将本项目导入idea可以参考这篇博客:如何把eclipse的web项目导入到idea中