
正文
java小论坛代码 java论坛系统源码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何用java 编写论坛及代码
你可以通过写servelet或是jsp来实现,论坛是个相当大的工程,建议你先做好设计,否则日后改起来就麻烦了,建议采用MVC模式,用jsp写V,servelet写C,M可以采用数据库,也可以采用文件,但是文件的安全系数可能相对低一些。
相关问答
Q1: 如何用java写一个论坛?
自己写的话,运用行不高,考虑的肯定也不够。
开源的bbs还是很多的,建议使用开源的(可作为商业用途)
推荐几个:
1.JForum
JForum 是采用Java开发的功能强大且稳定的论坛系统。它提供了抽象的接口、高效的论坛引擎以及易于使用的管理界面,同时具有完全的权限控制、多语言支持(包括中文)、高性能、可自定义的用户接口、安全、支持多数据库等等特性。
JForum 采用 FreeMarker 作为页面模板引擎,支持包括中文在内的二十几种语言。
JForum 最大的优点是采用 BSD 开源协议,你可以最大限度的进行任何修改和扩展,包括商业用途。
2.mvnForum
mvnForum 是一个来自越南开发的开源 Java 论坛软件,没有使用任何花哨的框架,mvnForum仅使用Servlet和JSP为您提供一个功能强大且高效的论坛系统,支持任何标准的Servlet容器,附带包括中文在内的多语言的支持。
不过好久没更新了。最近好像是推出企业版,开始走商业化道路。
3.iforums
iforums是为了更好的使jforum适用于中文论坛系统,而做的二次开发。iforums精仿国内最流行的Discuz! 论坛系统,提供了一个界面美 观,高效率的论坛,一个易于使用的管理面板,先进的权限控制系统
连接地址就不贴了(贴了估计审核又不过),百度下!
个人建议使用jforum,你可以根据你们具体情况适当选择,强烈不建议资自己写!
如有问题再追问,good luck!
Q2: 求一个用Java 做的开源论坛,最好是安装后可以直接使用的,或者自带说明文档的也可以
mvnForum 点击次数:7210
mvnForum是基于javaJ2EE 技术(Jsp/Servlet)的一个开源论坛.,安装简单。mvnForum兼容任何Servlet容器,支持Jsp 1.2 and Servlet 2.3。
JForum 点击次数:6633
JForum 是一个功能强大 ,易于管理的论坛。它的设计完全遵从MVC设计模式,能够在任何Servlet容器与EJB服务器上运行。而且可以轻松的定制与扩展JForum论坛。
xforum 点击次数:7789
国人开发的一个开源论坛,基于 Struts 技术,是学习 Struts 的一个非常好的范例。它用到 JAAS 实现 Security ,中文问题的解决,数据层用到 DAO ,以及基于 Struts 应用的基本架构,都是个非常好的学习。
jGossip 点击次数:2583
jGossip是一个简单,功能强大的java论坛。可运用j2EE在平台上。采用Struts framework技术。
FreeForums 点击次数:2164
一个基于XML的Java2企业级的论坛解决方案。FreeForums页面采用CSS, DHTML 与JavaScript等技术。这样用户可以定制自已喜欢的界面。它还提供一个在Windows下的客户端程序。
Sk Forum 点击次数:1549
SK Forum是一个开源的基于web的J2EE论坛应用程序。它是一个功能比较齐全的系统,包括很多功能比如:投票,wiki,定时跟踪,地址薄,好友薄以及其它一些小的功能。
JsForum 点击次数:1488
JsForum是只用到jsp与Servlet技术的论坛,容易使用。具有一般论坛的功能。但是目前只能支持MYSQL数据库。
nemesis-forum 点击次数:1197
一个使用J2EE技术的论坛。它的功能包括用户与用户组权限管理,支持i18n,内容过滤,综合搜索引擎,支持多种数据库。
Yazd 点击次数:1499
Yazd是一个使用JDBC连接数据库的论坛。它的特性包括:
1.提供在线安装和配置。
2.内容过滤(把Html代码转换成可显示的文件,自定义关键字过滤列表,隐藏urls的实现路径)。
3.集成Lucene1.3提供关键字搜索功能。
4.支持的数据库包括:Oracle,MySQL,DB2,Microsoft SQLServer,Sybase,Interbase,Hypersonic SQL,Pointbase,Informix和Postgres
5.还有其它一些一个论坛应具备的基本功能。
这个论坛提供多语言支持其中包括简体中文。
JavaBB 点击次数:2275
JavaBB基于java技术的类似于phpbb的论坛。
JForumFusion 点击次数:2295
JForumFusion是一个Java开源论坛。它主要的一些功能包括常规论坛功能,文件附件上传,个人信息,基于web的管理工具,UBBCode,和高性能的搜索引擎等。支持主流数据库包括:Oracle, DB2, MySQL, PostgreSQL, Sybase, SAP DB, HypersonicSQL, Microsoft SQL Server...
jzForum 点击次数:1745
这是一个利用Java开发的简单论坛.以下列出它的几点特性:
* 完全支持BBCode,
* 在新贴提交时利用AJAX技术提供无刷新页面预览功能.
* 利用lucene提供全文本搜索功能.
* 用户可监控主题.
* 可以容易更改样式(利用CSS几乎没有用到table).
* 安装简单只有一个war文件没有数据库(其实是内嵌hypersonic数据库)但 也支持其它数据库.
* 包括一个投票系统.
* jzForum还提供RSS阅读功能并利用缓存技术提高整个论坛的速度.
BBS-CS 点击次数:4336
天乙社区是一套基于JAVA技术的网络虚拟社区,采用了Hibernate+Spring+Struts的轻量级J2EE框架.
1、全文检索:天乙社区6.0采用Lucene全文检索,并支持完全国际化多语言的全文检索。
2、MVC框架:天乙社区6.0继续了5.x的Struts框架,但经过优化,WEB端更加简洁高效。
3、集群支持:系统可以运行在集群上。
4、功能方面:大大加强了管理功能,用户可以多样化的定制系统的各项信息,包括用户级别、封锁IP、过滤字等等,论坛功能上主要增加了投票帖、上传附件类型多样、帖子中显示用户信息等等功能等。
EasyJF 点击次数:650
简易java框架开源论坛系统拥有常用论坛系统的基本功能,集前台后台代码为一体,支持UBB。该论坛系统使用基于OO的方法设计,采用多层B/S构架,数据库持久层主要使用简易数据库开源框架EasyDBO,Web层使用EasyJWeb框架,java代码与页面完全分离,易扩展。
Q3: 求JAVA小项目的完整代码
给你个做好了的Java的源程序的记事本,自己看看就行了的,不怎么难的···
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class MyNotepad implements ActionListener{
private JFrame frame=new JFrame("新记事本");
private JTextArea jta=new JTextArea();
private String result="";
private boolean flag=true;
private File f;
private JButton jb=new JButton("开始");
private JTextField jtf=new JTextField(15);
private JTextField jt=new JTextField(15);
private JButton jbt=new JButton("替换为");
private JButton jba=new JButton("全部替换");
private Icon ic=new ImageIcon("D:\\java课堂笔记\\GUI\\11.gif");
private String value;
private int start=0;
private JFrame jf=new JFrame("查找");
private JFrame jfc=new JFrame("替换");
@Override
public void actionPerformed(ActionEvent e) {
String comm=e.getActionCommand();
if("新建".equals(comm)){
if(!(frame.getTitle().equals("新记事本"))){
if(!flag){
write();
newNew();
}else{
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
int returnVal = jfc.showDialog(null,"保存为");
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
}
}
}else if(!(jta.getText().isEmpty())){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
int returnVal = jfc.showDialog(null,"保存为");
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
newNew();
}
}else{
newNew();
}
}else if("打开".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
jfc.setDialogType(JFileChooser.OPEN_DIALOG);
int returnVal = jfc.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
frame.setTitle(f.getName());
result=read();
flag=false;
value=result;
jta.setText(result);
}
}else if("保存".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
if(flag){
int returnVal = jfc.showDialog(null,"保存为");
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
}
}else{
write();
}
}else if("另存".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
int returnVal = jfc.showDialog(null,"另存");
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
write();
}
}else if("退出".equals(comm)){
System.exit(0);
}else if("撤销".equals(comm)){
jta.setText(value);
}else if("剪切".equals(comm)){
value=jta.getText();
jta.cut();
}else if("复制".equals(comm)){
jta.copy();
}else if("粘贴".equals(comm)){
value=jta.getText();
jta.paste();
}else if("删除".equals(comm)){
value=jta.getText();
jta.replaceSelection(null);
}else if("全选".equals(comm)){
jta.selectAll();
}else if("查找".equals(comm)){
value=jta.getText();
jf.add(jtf,BorderLayout.CENTER);
jf.add(jb,BorderLayout.SOUTH);
jf.setLocation(300,300);
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}else if("替换".equals(comm)){
value=jta.getText();
GridLayout gl=new GridLayout(3,3);
JLabel jl1=new JLabel("查找内容:");
JLabel jl2=new JLabel("替换为:");
jfc.setLayout(gl);
jfc.add(jl1);
jfc.add(jtf);
jfc.add(jb);
jfc.add(jl2);
jfc.add(jt);
jfc.add(jbt);
JLabel jl3=new JLabel();
JLabel jl4=new JLabel();
jfc.add(jl3);
jfc.add(jl4);
jfc.add(jba);
jfc.setLocation(300,300);
jfc.pack();
jfc.setVisible(true);
jfc.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}else if("版本".equals(comm)){
JDialog jd=new JDialog(frame,"关于对话框");
jd.setSize(200,200);
JLabel l=new JLabel("哈哈哈哈哈哈哈哈哈哈呵呵呵呵呵呵呵呵呵呵呵呵呵");
jd.add(l,BorderLayout.CENTER);
jd.setLocation(100,200);
jd.setSize(300,300);
jd.setVisible(true);
// jd.pack();
jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}else if("开始".equals(comm)||"下一个".equals(comm)){
String temp=jtf.getText();
int s=value.indexOf(temp,start);
if(value.indexOf(temp,start)!=-1){
jta.setSelectionStart(s);
jta.setSelectionEnd(s+temp.length());
jta.setSelectedTextColor(Color.GREEN);
start=s+1;
jb.setText("下一个");
// value=value.substring(s+temp.length());//不能截取字串
}else {
JOptionPane.showMessageDialog(jf, "查找完毕!", "提示", 0, ic);
jf.dispose();
}
}else if("替换为".equals(comm)){
String temp=jtf.getText();
int s=value.indexOf(temp,start);
if(value.indexOf(temp,start)!=-1){
jta.setSelectionStart(s);
jta.setSelectionEnd(s+temp.length());
jta.setSelectedTextColor(Color.GREEN);
start=s+1;
jta.replaceSelection(jt.getText());
}else {
JOptionPane.showMessageDialog(jf, "查找完毕!", "提示", 0, ic);
jf.dispose();
}
}else if("全部替换".equals(comm)){
String temp=jta.getText();
temp=temp.replaceAll(jtf.getText(), jt.getText());
jta.setText(temp);
}
}
public String read(){
String temp="";
try {
FileInputStream fis = new FileInputStream(f.getAbsolutePath());
byte[] b=new byte[1024];
while(true){
int num=fis.read(b);
if(num==-1)break;
temp=temp+new String(b,0,num);
}
fis.close();
} catch (Exception e1) {
e1.printStackTrace();
}
return temp;
}
public void write(){
try {
FileOutputStream fos=new FileOutputStream(f);
fos.write(jta.getText().getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void newNew(){
frame.dispose();
new MyNotepad();
flag=true;
}
public MyNotepad(){
JMenuBar jmb=new JMenuBar();
String[] menuLab={"文件","编辑","帮助"};
String[][] menuItemLab={{"新建","打开","保存","另存","退出"},
{"撤销","剪切","复制","粘贴","删除","全选","查找","替换"},
{"版本"}};
for(int i=0;imenuLab.length;i++){
JMenu menu=new JMenu(menuLab[i]);
jmb.add(menu);
for(int j=0;jmenuItemLab[i].length;j++){
JMenuItem jmi=new JMenuItem(menuItemLab[i][j]);
menu.add(jmi);
jmi.addActionListener(this);
}
}
frame.setJMenuBar(jmb);
jta.setLineWrap(true);//自动换行
JScrollPane jsp=new JScrollPane(jta);//滚动窗口面板
frame.add(jsp);
jb.addActionListener(this);
jbt.addActionListener(this);
jba.addActionListener(this);
frame.setLocation(200,50);
frame.setSize(620,660);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyNotepad();
}
}
关于java小论坛代码和java论坛系统源码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






