jsforum研究。一个比较简单的论坛。

简介: 突然想看看论坛是怎么写的。 回想起以前。用jforum。安装使用。在看看那些代码。很多。 觉得很麻烦。自己需要的论坛也没有要求那么复杂。 就是需要简单的发帖。回帖。   进行管理。就可以了。功能越简单越好。   于是发现了。jsforum。功能超级简单。   其中也发现一些问题。进行简单的修改。   首先是在web.xml添加servlet。(见附件)   没有放we

突然想看看论坛是怎么写的。

回想起以前。用jforum。安装使用。在看看那些代码。很多。

觉得很麻烦。自己需要的论坛也没有要求那么复杂。

就是需要简单的发帖。回帖。

 

进行管理。就可以了。功能越简单越好。

 

于是发现了。jsforum。功能超级简单。

 

其中也发现一些问题。进行简单的修改。

 

首先是在web.xml添加servlet。(见附件)

 

没有放web.xml文件。

 

数据库的创建脚本里面。都是用的text字段。这个倒是不用担心最大长度。

 

CREATE TABLE forum_forums
(id 		int(10)		NOT NULL	auto_increment,  
 forum_id 	int(10)     	NOT NULL,
 title 		text 		NOT NULL,  
 forum_info 	text 		NOT NULL, 
 PRIMARY KEY (id,forum_id)
);

CREATE TABLE forum_message 
(id 		int(10)		NOT NULL	auto_increment, 
 forum_id 	int(10)		NOT NULL,
 thread_id 	int(10)		NOT NULL, 
 reply_id 	int(10)		NOT NULL, 
 message 	text		NOT NULL,  
 user 		text		NOT NULL,  
 date_time 	datetime 	NOT NULL,
 PRIMARY KEY (id,forum_id,thread_id,reply_id)
);

CREATE TABLE forum_threads 
(id 		int(10) 	NOT NULL	auto_increment,  
 forum_id 	int(10) 	NOT NULL,    
 thread_id 	int(10) 	NOT NULL,   
 title 		text 		NOT NULL,  
 views 		int(10) 	default 0,
 PRIMARY KEY (id,forum_id,thread_id) 
);

CREATE TABLE forum_users
(id		int(10)		NOT NULL	auto_increment,
 user_name	text		NOT NULL,	
 password	text		NOT NULL,
 email		text		 ,
 registerdate	datetime	 ,
 type	text ,
 avatar		text		 ,
 member_title	text		 ,
 signature	text		 ,
 PRIMARY KEY (id)
);

CREATE TABLE forum_settings
(id		int(10)		NOT NULL	auto_increment,
 dbName		text		NOT NULL,	
 dbLogin	text		NOT NULL,
 dbPassword	text		NOT NULL,
 forumPath	text		NOT NULL,
 forumName	text		NOT NULL,
 messagePerPage text		NOT NULL,
 PRIMARY KEY (id)
);

 数据库里面forum_user里面少了一个type字段。

 

在数据java类里面也有过小小的问题。mysql的驱动定义。

 

Class.forName("com.mysql.jdbc.Driver");

 

在执行的时候的方法也不对。

 

    public void query(String SQLQuery){
    	this.SQLQuery = SQLQuery;
        try {
        	stmt = conn.createStatement();
            stmt.executeQuery( SQLQuery );

        }
        catch( Exception e ){}
    }

 这个应该是:

 

	public void query(String SQLQuery) {
		System.out.println(SQLQuery);
		this.SQLQuery = SQLQuery;
		try {
			stmt = conn.createStatement();
			stmt.executeUpdate(SQLQuery);

			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

 明明就是是数据库插入删除的的操作。名字是query。应该叫executeXXX什么吧。

 

 

总之修改了之后。是可以用来。


 

功能什么的都是最简单的方式实现的。自己可以看看研究下。

明白了这个就可以自己写点东西了。

 

 

附件里面是整个工程。

 

 

目录
相关文章
|
5月前
|
搜索推荐 中间件
系统入门到实战学习某项技术、有问题找"百度"、学习大佬的技术博客、找开源代码等资料
系统入门到实战学习某项技术、有问题找"百度"、学习大佬的技术博客、找开源代码等资料
56 0
|
8月前
|
编解码 iOS开发
一节微课诞生的全过程(无保留分享,望收藏)
本来是想以直播的方式把制作这节微课的过程分享出来,但考虑到大家的时间不统一,制作过程太长,这节微课录音之后制作动画就足足用了两天
129 0
|
11月前
|
语音技术
如何用ChatGPT写专业方向的科普内容?
该场景对应的关键词库(13个): 目标用户、科普内容、生活问题、医疗类型、科普文章、病情症状、通俗性、专业名词、背景资质、权威领域、执业范围、证言人、内容形式。
110 0
如何用ChatGPT写专业方向的科普内容?
|
11月前
|
缓存 Kubernetes 算法
公开下载 | 300+页《服务端开发与面试知识手册》,12.8w字经典架构知识
公开下载 | 300+页《服务端开发与面试知识手册》,12.8w字经典架构知识
490 0
|
11月前
|
存储 机器学习/深度学习 人工智能
清华最新「持续学习」综述,32页详述持续学习理论、方法与应用综述
清华最新「持续学习」综述,32页详述持续学习理论、方法与应用综述
224 0
清华最新「持续学习」综述,32页详述持续学习理论、方法与应用综述
|
机器学习/深度学习 算法 知识图谱
重磅 | 19 页花书精髓笔记!你可能正需要这份知识清单
重磅 | 19 页花书精髓笔记!你可能正需要这份知识清单
288 0
重磅 | 19 页花书精髓笔记!你可能正需要这份知识清单
|
Java 数据库 NoSQL
也许能帮到你一点!eboot框架基础版发布
每次开发都从0开始,重复造了无数个轮子,或者是把之前的项目抠出来,改吧改吧。但是技术的更新速度太快,甚至还见过现在开发的项目用jdk1.6的,因为老项目用的1.6······ 为了简化项目开始这一步的操作,有了开发eboot的念头,已经有很多前辈开发过类似这样的东西,在这里先感谢一下走在前面的前辈们,但是每个人的都会有一些不同,能给大家提供多一种的选择也就足够了 eboot简介 目前发布一个基础版,适用于中小型项目开发,后续会加入更多功能,以满足大型项目的需求。
1244 0
|
移动开发
郁金香商业辅助教程 2016 笔记 6~10
六、相对路径 我们希望把 DLL 和这个程序放到一起,那么 DLL 路径就是程序所在路径加上 DLL 的名称。 将DllFullPath的定义注释掉,换成DllName: #define DllName "mfc_dll.dll" 然后修改InjectDll的参数: bool InjectDll(const char *dllFullPath) 所有DllFullPath都改成dllFullPath。
1256 0
郁金香商业辅助教程 2016 笔记 1~5
一、分析角色 HP/MP 地址 我们的目标是这个,热血江湖。我们要找出基本信息中,所有数据的地址。 我们要用到一款工具,CE。
1552 0
郁金香商业辅助教程 2016 笔记 11~15
11 背包分析 上一节中我们发现,背包对象储存物品对象的指针,并且如果某一栏没有物品,那么那个位置就是NULL。我们可以以此快速寻找某个位置的地址。
1371 0