一. 写在前面
这是关于夏季学期Java结课大作业的初步思考,所阐述的都是自己初步的拙劣见解。希望见阅者不要转发(不要转述思想)的真实目的是为了不误导他人。希望读者在阅读时保持独立思考,有自己的想法。如果遇到疑问,可以直接联系笔者或者评论。
二. 题目及理解
也许需要思考这些问题:
- 如何通过socket实现client/server通信?
要注意此处C/S是一种多对一关系,server端有必要使用线程。
- 哪些阶段需要使用socket通信?
- 客户端登录的时候(如果您有登录界面的话)
- 呈现客户端主界面时
- 文件上传的时候
- 文件下载的时候
- 文件删除的时候
- 文件重命名的时候
- socket通信需要传输哪些形式?
主要是传输文件内容(fileStream)和传输字符串(主要是文件信息,如名称、长度)
- 文件上传、下载的时候需要传输文件内容与文件信息(字符串)
- 客户端登录、呈现客户端主界面、文件删除、重命名的时候都需要传输文件信息(字符串)
- 有关数据库的使用?
使用什么数据库?Access、MySQL、PostgreSQL(笔者使用)等等都可以。
使用数据库干什么?也许可以分成两个数据库,一个管理用户信息(如果您的系统有登录界面的话),另一个管理文件信息。
- 用户端主界面用什么结构实现?
主界面是为了给用户呈现文件信息,方便客户管理文件。笔者使用Hashtable+JTree,您完全可以也有必要用其他方法。
- 有关GUI界面?
GUI界面的设计或许是整个程序设计的第一步,这是完全个性化的,笔者使用了Swing实现。
- 以什么顺序完成此项目?
先写客户端GUI界面,再写socket通信(客户端C对应服务器S),其中服务器S要实现多线程以及与数据库的连接。服务器可以不止一个。
注意项目的最终截止提交日期是9月7日,请合理规划时间!
三. 程序设计时的参考文献
有必要参考课本,也有必要查百度。笔者参考了如下文献,具体参考的文献完全取决于自己遇到的实际困难,因人而异。如您遇到与笔者类似的问题,请取阅。
菜鸟教程JAVA部分:https://www.runoob.com/java/java-tutorial.html
菜鸟教程JSP部分:https://www.runoob.com/jsp/jsp-tutorial.html
1. 有关socket的client和server
资料基本是C/S一对一模式,C/S多对一则需要在server文件中使用线程,可以参见课本
Socket传输各种文件实现 (文件名称、大小判断)
https://jingyan.baidu.com/article/e73e26c081f05d24acb6a745.html
Java Enumeration接口
https://www.runoob.com/java/java-enumeration-interface.html
使用Socket实现账号密码验证
https://blog.csdn.net/weixin_42488035/article/details/106844136
2. 有关数据库(此处使用PostgreSQL)
怎么安装PostgreSQL?可以查百度,也可以看我的csdn。但不一定要用PostgreSQL,可以是其他数据库,如Access或MySQL
JAVA连接PostgreSQL数据库
Intellij IDEA 添加jar包的三种方式
https://blog.csdn.net/zwj1030711290/article/details/56678353/
3. 利用数据结构JTree实现客户端文件管理界面
我使用了Hashtable+JTree,实现手段不唯一,是个性化的
java Tree 怎么获得父节点的值?
https://zhidao.baidu.com/question/521121303.html
4. 如何实现本地文件重命名?
Java File中renameTo的介绍和使用说明
https://blog.csdn.net/u010648555/article/details/78356040
5. 如何实现错误追踪以及可能遇到的问题
个性化的问题,每个人遇到的不同,参考价值不是非常大
异常类的toString()、getMessage()和printStackTrace()方法
Error:Module ‘d‘ production: java.lang.ClassCastException错误的解决方法