基于JSP+Servlet+MySQL实现的组织信息管理系统


声明:项目原创,未经允许不可搬运

项目地址

项目源代码(包括IDEA项目文件、SQL数据库文件、Jar外部包)
https://download.csdn.net/download/qq_18665453/21829979

项目环境

开发环境:Intellij Idea Win10
浏览器:Chrome
JDK1.8.0 tomcat 8.5
JAVA EE
外部jar包:
1.activation.jar
2.javax.mail.jar
3.mysql-connector-java-8.0.26.jar

项目介绍

本项目为本人暑期(2021年8月10日-8月31日)独立编写,基于JSP+Servlet+MySQL技术实现的网站系统,主要用于学生组织或社会组织管理。

  1. 项目较为完善地实现了登录、注册、密码找回、用户认证等用户模块,后台可对用户信息进行增删改查;
  2. 同时作为组织管理系统,实现了子级组织管理、活动发布、活动报名、活动通知、工时审批、工时证明等功能模块;
  3. 为提高交互性,添加了站内聊天、邮件通知等功能;
  4. 对于不同的用户属性进行了分类,分别为普通用户、子级组织负责人、活动负责人、管理组织者,对于功能与权限进行了合理的划分。

项目实现

1.登录、注册、找回、认证

登录注册密码找回在这里插入图片描述
在这里插入图片描述
说明:
1.登录页面即为普通的账号密码形式,由Servlet对调用User中的方法对密码进行验证,其中密码存放在MySQL数据库中,采用MD5加密的方式,所以每次登录时,都是需要将密码串转为MD5加密,再进行数据库Select操作,如果存在该邮箱账号则对密码进行比较,并登录,从数据库中获取用户信息,并返回一个User对象存放在session中,如果不存在,则向JSP页面返回不存在消息。
2.注册页面首先需要对用户邮箱进行验证,此时产生一个随机数字串并通过Java-mail向用户邮箱中发送,同时该数字串会被保存在session中,用以在注册时的对比。当填写完所有的信息后,Servlet进行处理,先检查是否存在空项,再对验证码进行对比,再进行数据库Insert操作,并初始化用户态为0(未认证)。
3.找回密码页面,通过向用户邮箱中发送一个带有验证字符串的请求Url来进行前期验证,发送的同时,字符串Url会存放在数据库的user表的recover字段中(因为找回密码点击Url具有不即时性),当用户单击Url后,在Servlet中,将请求内容与数据库中的内容进行对比,如果正确,则进行密码重置操作。
4.认证页面是为用户态为0的用户进行用户名设置、组织选择的操作,通过列出所有组织名,并通过认证码进行校验的方式,对用户的组织进行设定,有效的规范了组织的划分。

2.用户主页、站内聊天

用户主页站内聊天
说明:
1.用户主页面中的内容,有一部分统计信息是通过Site中的方法进行实现的(数据库的 count操作)
2.站内聊天功能的实现,其实存在部分欠缺,类似于留言板的方式在用户之间进行双向交流,欠缺之处在于不能实现动态即时消息,当对方用户发送消息后,需要刷新页面才可以进行查看。
这里比较有思维含量的地方在于对数据库的信息检索:
数据库字段设定:(根据多字段并)
数据库
检索SQL语句:

String sql="(select other as user from chat where me = ? order by id desc limit 100000 ) union (select me as user from chat where other= ? order by id desc limit 100000)";

需要检索出me为本用户或user为本用户的消息,当me为本用户时使用的是other字段,当other为本用户时使用的是me字段,同时需要进行逆序排序(因为当列出用户消息列表时是有先后顺序的)
发送消息后,即向数据库中存放了一个带有发送消息者、接收消息者、消息内容的数据,并向接收消息者邮箱中发送了一条通知邮件

3.活动列表、活动报名

活动展示活动报名
说明:
1.活动列表的列出是有选择性的,只会列出消息发布组织为OrgID:1和本组织的活动
2.先判断用户是否参在了本活动,如果未参在本活动,则显示参加活动,否则显示取消报名的按钮,群聊Url可通过QQ群聊网站生成,实现点击按钮一键加入群聊。
在这里插入图片描述

参加活动的用户信息是采用同一个字符串进行处理的,‘-’分割中的数字即为参加用户的ID。

4.工时审批、工时证明

工时审批
工时证明
说明:
1.用户可以在页面提交申请,状态自动初始化为待审批
2.通过传入参数得到对应数据库的内容,生成表单

5.网站设置

网站设置

6.用户管理、用户展示

用户管理

用户展示

7.组织管理、组织展示

组织管理
组织展示

8.活动管理、工时管理

活动管理
工时管理

9.个人信息、修改密码

个人信息

修改密码

数据库设计

1.活动表

--
-- 表的结构 `act`
--
CREATE TABLE `act` (
  `id` int(10) NOT NULL,
  `name` text NOT NULL,
  `brief` text NOT NULL,
  `details` text NOT NULL,
  `org` int(10) NOT NULL,
  `time` text NOT NULL,
  `place` text NOT NULL,
  `state` int(10) NOT NULL,
  `href` text NOT NULL,
  `email` text NOT NULL,
  `admin` int(11) NOT NULL,
  `user` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.聊天表

--
-- 表的结构 `chat`
--

CREATE TABLE `chat` (
  `id` int(100) NOT NULL,
  `me` int(10) NOT NULL,
  `other` int(10) NOT NULL,
  `text` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.组织表

--
-- 表的结构 `org`
--

CREATE TABLE `org` (
  `name` text NOT NULL,
  `admin` int(11) NOT NULL,
  `id` int(10) NOT NULL,
  `auth` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.网站信息表

--
-- 表的结构 `site`
--

CREATE TABLE `site` (
  `name` text NOT NULL,
  `keyword` text NOT NULL,
  `describes` text NOT NULL,
  `emailstmp` text NOT NULL,
  `emailuser` text NOT NULL,
  `emailpassword` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

5.工时记录表

--
-- 表的结构 `task`
--

CREATE TABLE `task` (
  `id` int(10) NOT NULL,
  `user` int(10) NOT NULL,
  `value` int(10) NOT NULL,
  `state` int(10) NOT NULL,
  `act` int(10) NOT NULL,
  `org` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

6.用户表

--
-- 表的结构 `user`
--

CREATE TABLE `user` (
  `email` text NOT NULL,
  `password` text NOT NULL,
  `id` int(10) NOT NULL,
  `qq` text NOT NULL,
  `org` int(10) NOT NULL,
  `state` int(1) NOT NULL,
  `task` int(20) NOT NULL,
  `name` text NOT NULL,
  `recover` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

项目文件

1.28个Servlet
Servlet
2.4个Java类,分别处理活动、聊天、工时、用户
Java
3、一些自己编写的工具类,数据库、邮件发送、Md5加密等
Java

项目部署

数据库
上传数据库文件,保证数据库有权限
项目修改
在IDEA中加载项目文件,打开src\com\util\Datebase.java,修改数据库信息,并重新构建
数据库
服务器部署
1.安装宝塔服务器,在宝塔服务器中安装插件(Java项目一键部署),添加项目
宝塔
2.在对应目录中上传war包,并解压
解压
3.回到插件,点击映射
映射

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闫文俊

谢谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值