Java网络编程: 面向对象与多线程实战

Java面向对象与多线程实战

背景:

武汉理工大学(WHUT)“面向对象与多线程综合实验”课程项目实现!(无GUI最终版(实现client-server网络编程))。

目标:

运用Java语言,以迭代方式逐步编程实现一个 小型档案管理系统。由此了解软件开发的一般过程,深入理解面向对象语言的基本概念和基本原理,理解和掌握继承与多态、异常处理、输入输出流、GUI设计、JDBC数据库操作、网络编程、多线程等技术;熟练掌握在Java语言环境下,上述技术的具体实现方法。

系统迭代:

档案管理系统分为四个迭代版本:

  1. 以缓存存储用户信息、文件信息、案宗信息。
  2. 以文件作为容器存储用户信息、文件信息、案宗信息。
  3. 以数据库作为容器存储用户信息、文件信息、案宗信息。
  4. 以数据库为容器实现Client与Server端的多线程版本。

博主实现了以上全部4个版本;(:因为Swing、Jframe太过垃圾,余不忍破坏代码的整洁性,故所有版本无GUI)

博主已将最终版 “Version-4——以数据库为容器实现Client端与Server端的多线程版本”的源码,放到了个人github仓库,欢迎大家star、fork😁。

github仓库链接: https://github.com/RaySunWHUT/Object-oriented-and-multi-threading
在这里插入图片描述

系统功能模块:

档案管理系统分为三个模块:

  1. 用户管理。
  2. 文件管理。
  3. 案宗管理。

各模块具体功能如下:

  1. 用户管理模块:
    (1) 新增用户
    (2) 删除用户
    (3) 修改用户信息
    (4) 列出用户
    (5) 清空用户

  2. 文件管理模块:
    (1) 上传文件
    (2) 下载文件
    (3) 删除文件
    (4) 修改文件
    (5) 列出文件

  3. 案宗管理模块:
    (1) 上传案宗
    (2) 下载案宗
    (3) 删除案宗
    (4) 查找案宗
    (5) 修改案宗信息
    (6) 列出案宗

档案管理系统的用户群体分为以下三类:

Administrator:系统管理人员。
Browser:档案浏览人员。
Operator:档案录入人员。

不同的用户群体具有不同的使用权限,以下分别介绍:

  1. Administrator权限:
    (1) 新增用户
    (2) 修改用户
    (3) 删除用户
    (4) 列出用户
    (5) 清空用户
    (6) 修改本人密码
    (7) 清空用户
    (8) 列出文件
    (9) 下载文件
    (10) 列出案宗
    (11) 下载案宗

  2. Browser权限:
    (1) 下载文件
    (2) 列出文件
    (3) 修改本人密码
    (4) 列出案宗
    (5) 下载案宗
    (6) 查找案宗

  3. Operator权限:
    (1) 上传文件
    (2) 下载文件
    (3) 列出文件
    (4) 删除文件
    (5) 清空文件
    (6) 修改本人密码
    (7) 上传案宗
    (8) 下载案宗
    (9) 列出案宗
    (10) 删除案宗
    (11) 修改案宗
    (12) 查找案宗
    (13) 清空案宗

下面以用例图来详细说明各类用户的权限:

Administor:
在这里插入图片描述

Operator:

在这里插入图片描述

Browser:
在这里插入图片描述

总体设计思路:

利用JavaSE以及网络编程Socket与多线程Multi-Thread来实现多Client端与Server端通信。

并且,项目中应用到了Java 反射机制;可以说,这是一个纯手动实现的MVC框架的具象化项目;
包括:

  1. 模型(Model):domain.
  2. 视图(View): 命令行界面.
  3. 控制器(Controller): controller.

下图为Java Web中MVC模式的编程思路,博主实现的项目与MVC模式的原理相同,不过更贴近底层,可以让大家更好的理解网络编程Java反射机制 等底层基础知识。
在这里插入图片描述

开发流程:

Version-1:

采用命令行交互的方式,以Hashtable缓存为容器完成最基本的对用户、文件、案宗的增、删、查、改,并实现对不同用户群体的权限控制。

Version-2:

采用命令行交互的方式,以本地文件为容器利用文件I/O流来实现对用户、文件、案宗的增、删、查、改,并实现对不同用户群体的权限控制。

Version-3:

采用命令行交互的方式,以数据库为容器实现对数据库表userInfo、documentInfo、archiveInfo的insert、update、delete、select 等操作。

Version-4:

采用命令行交互的方式,以数据库为容器结合网络编程Socket以及多线程的知识实现多Client端和Server端的服务器交互。

大致是这样,详情大家可以参考我的github仓库:https://github.com/RaySunWHUT/Object-oriented-and-multi-threading

最后附上,当年,大二时完成实践后的心得体会😁。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值