
正文
java手机论坛开源代码 java开发论坛网站
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何用java 编写论坛及代码
你可以通过写servelet或是jsp来实现java手机论坛开源代码,论坛是个相当大的工程,建议你先做好设计,否则日后改起来就麻烦java手机论坛开源代码了,建议采用MVC模式,用jsp写V,servelet写C,M可以采用数据库,也可以采用文件,但是文件的安全系数可能相对低一些。
相关问答
Q1: 哪儿能看到java开源代码?
选中某一个函数,点击f3,然后关联jdk安装包下面的名字叫src的文件
Q2: 出名的java开源社区有哪些?
比较出名的开源社区有哪些? IT程序员必逛的社区,小编经常去的一些国内社区网站及论坛,关于程序员的交流社区或者论坛,这里收集一些比较好的开发者社区供大家参考,具体如下:
1、快速开发平台社区 -天翎论坛,主要是以Java低代码开发平台为主的技术性论坛社区,目前低代码平台商用授权对外开放,即申请即用,无需等待;
2、CSDN -专业开发者社区 IT技术交流平台;
3、IT圈,圈圈精彩 - 原软媒论坛、IT之家,国内最人气的科技社交圈层,继软媒论坛、IT之家社区演变而来;
4、51CTO技术论坛-中国领先的IT技术社区 国内主流IT技术社区,论坛拥有大批IT技术人/IT专家;
5、ITPUB技术论坛-中国专业的IT技术社区
Q3: 求一个用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代码与页面完全分离,易扩展。
Q4: 开源里有没有留言板的源代码,JAVA的
绝对开源,绝对明了的留言板,便于学习的源码
用JAVA写的留言板原代码
/*
* guestbookServlet.java
*
* */
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.Date;
/**
*
* */
public class guestbookServlet extends HttpServlet {
boolean debug=false;
String sDBDriver;
Connection conn=null;
ResultSet rs=null;
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
if(debug)
sDBDriver=new String("sun.jdbc.odbc.JdbcOdbcDriver");
else
sDBDriver=new String("org.gjt.mm.mysql.Driver");
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("Driver类初始化:"+e.getMessage());
}
}
/** Destroys the servlet.
*/
public void destroy() {
}
/** Processes requests for both HTTP codeGET/code and codePOST/code methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
response.setContentType("text/html;charset=gb2312");
java.io.PrintWriter out = response.getWriter();
boolean empty=true;
boolean noResult=true;
String sqlStr;
int currentPage=0;
int totalPage=0;
int reccount=0;
ResultSet myrs=null;
String username=request.getParameter("username");
String email=request.getParameter("email");
String ucontent=request.getParameter("ucontent");
String ipage=request.getParameter("ipage");
if(ipage==null||ipage.length()==0)
currentPage=1;
else
currentPage=Integer.parseInt(ipage);
if((username==null||username.length()==0)||(ucontent==null||ucontent.length()==0))empty=true;
else empty=false;
Date myDate=new Date();
//String intime=new String(String.valueOf(myDate.getYear()+1990)+String.valueOf(myDate.getMonth()));
String year=String.valueOf(myDate.getYear()+1900);
String month=String.valueOf(myDate.getMonth()+1);
if(month.length()==1)
month=new String("0"+month);
String days=String.valueOf(myDate.getDate());
if(days.length()==1)
days=new String("0"+days);
String hours=String.valueOf(myDate.getHours());
if(hours.length()==1)
hours=new String("0"+hours);
String minutes=String.valueOf(myDate.getMinutes());
if(minutes.length()==1)
minutes=new String("0"+minutes);
String intime=year+"-"+month+"-"+days+" "+hours+":"+minutes;
if(email==null||email.length()==0)
email=new String("");
if(!empty){
//username=convert(username);
//email=convert(email);
//ucontent=convert(ucontent);
sqlStr="insert into Mintegbook(Mname,Memail,Mcontent,Mtime,Mid) values("+username+","+email+","+ucontent+","+intime+",1)";
getDsnConn();
executeInsert(sqlStr);
}
sqlStr=new String("select Mname,Memail,Mcontent,Mtime from Mintegbook order by Mtime DESC");
getDsnConn();
reccount=getRecordCount("Mintegbook");
if(reccount==0)
noResult=true;
else
noResult=false;
if(!noResult){
int ipageSize=10;
totalPage=getTotalPage("Mintegbook",ipageSize);
if(currentPagetotalPage)
currentPage=totalPage;
int cursor=(currentPage-1)*ipageSize+1;
try{
myrs=executeScrollableQuery(sqlStr);
myrs.absolute(cursor);
}
catch(SQLException e){
noResult=true;
}
}
out.println("HTMLHEADTITLE我的Servlet留言板/TITLE");
out.println("META http-equiv="Content-Type" content="text/html; charset=gb2312"");
out.println("STYLE type="text/css"");
out.println("!--");
out.println(".mytext { font-family: "宋体"; font-size: 12px}");
out.println(" --");
out.println("/STYLE");
out.println("/HEAD");
out.println("BODY bgcolor="#FFFFFF" text="#000000"");
out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="0" align="CENTER" class="mytext"");
out.println("TRTD height="22" | a href=""我的主页/a | 我的Servlet留言板(A href="mailto:yf188@21cn.com"川石/A制作)/TD/TR");
out.println("TRTD height="1" bgcolor="#999933"/TD/TR");
out.println("/TABLE");
out.println("BR");
out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="0" align="CENTER" class="mytext"");
out.println("TRTD height="8"/TD/TR");
out.println("TRTD height="18" bgcolor="#f7f7f7"DIV align="right"");
out.println("共有 "+reccount + " 条留言 ");
out.println(" 当前第font color=#ff0000"+currentPage+"/font/共 "+totalPage+" 页 ");
if(currentPage1)
out.println(" a href=guestbookServlet?ipage=1首页/a a href=guestbookServlet?ipage="+(currentPage-1)+"上一页/a ");
else
out.println(" 首页 上一页 ");
if(currentPagetotalPage)
out.println(" a href=guestbookServlet?ipage="+(currentPage+1)+"下一页/a a href=guestbookServlet?ipage="+totalPage+"末页/a ");
else
out.println(" 下一页 末页 ");
out.println("/DIV/TD/TR");
out.println("/TABLE");
out.println("BR");
//这里是显示留言内容
if(!noResult){
String dname;
String demail;
String dcontent;
String dtime;
Date temptime;
try{
do{
dname=new String(myrs.getString("Mname"));
demail=new String(myrs.getString("Memail"));
dcontent=new String(myrs.getString("Mcontent"));
try{
dtime=new String(myrs.getObject("Mtime").toString());
}
catch(java.lang.NullPointerException e){
dtime=new String("2001-04-06 12:30");
}
if(dname==null)
dname=new String("川石");
if(demail==null)
demail=new String("yf188@21cn.com");
if(dcontent==null)
dcontent=new String("test");
if(dtime==null)
dtime=new String("2001-04-06 12:30");
dname=convert(dname);
dcontent=convert(dcontent);
//temptime=myrs.getDate("Mtime");
/*
String tempyear=String.valueOf(temptime.getYear()+1900);
String tempmonth=String.valueOf(temptime.getMonth()+1);
if(tempmonth.length()==1)
tempmonth=new String("0"+tempmonth);
String tempdays=String.valueOf(temptime.getDate());
if(tempdays.length()==1)
tempdays=new String("0"+tempdays);
String tempminute=String.valueOf(temptime.getMinutes());
if(tempminute.length()==1)
tempminute=new String("0"+tempminute);
String temphours=String.valueOf(temptime.getHours());
if(temphours.length()==1)
temphours=new String("0"+temphours);
String dtime=tempyear+" 年 "+ tempmonth +" 月 "+ tempdays +" 日 " + temphours+ " 时 "+ tempminute + " 分 ";
*/
out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="4" align="CENTER" class="mytext"");
out.println("TRTD姓名 A href="mailto:"+demail+"""+dname+"/A 留言时间:"+dtime+"/TD/TR");
out.println("TRTD height="10"/TD/TR");
out.println("TRTD height="10""+dcontent+"/TD/TR");
out.println("/TABLE");
out.println("HR width="600" size="1"");
}while(myrs.next());}
catch(SQLException e){
out.println("error found");
}
}
else{
out.println("还没有留言!");
}
//结束
out.println("FORM name="form1" method="post" action="guestbookServlet"");
out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="4" align="CENTER" class="mytext"");
out.println("TRTD width="80"姓名:/TDTDINPUT type="text" name="username"*/TD/TR");
out.println("TRTDEmail:/TDTDINPUT type="text" name="email"*/TD/TR");
out.println("TRTD留言:/TDTDTEXTAREA name="ucontent" cols="65" rows="4"/TEXTAREA/TD/TR");
out.println("/TABLE");
out.println("TABLE width="400" border="0" cellspacing="0" cellpadding="6" align="CENTER" class="mytext"");
out.println("TRTD height="15" width="200" /TDTD /TD/TR");
out.println("TRTDDIV align="RIGHT"INPUT type="button" name="Button" value=" 提 交 " style="cursor:hand" onclick="javascript:check()"/DIV/TD");
out.println("TDINPUT type="reset" name="Submit2" value=" 重 置 "/TD/TR");
out.println("/TABLE");
out.println("/FORM");
out.println("TABLE width="400" border="0" cellspacing="0" cellpadding="4" align="CENTER" class="mytext"");
out.println("TRTD width="15" /TD/TR");
out.println("TRTDDIV align="LEFT"/DIV/TD/TR");
out.println("TRTD /TD/TR");
out.println("/TABLE");
out.println("/BODY");
out.println("/HTML");
out.println("SCRIPT language="javascript"");
out.println("function check(){");
out.println("if(form1.username.value.length1||form1.ucontent.value.length1)");
out.println("{alert(姓名和留言是必须有的!);}else{form1.submit();}}");
out.println("/SCRIPT");
out.close();
}
/** Handles the HTTP codeGET/code method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
processRequest(request, response);
}
/** Handles the HTTP codePOST/code method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
processRequest(request, response);
}
protected void getDsnConn(){
String sqlUrl="jdbc:mysql://10.0.0.1/你申请用户名?user=你的名字password=你的帐号";
try{
if(debug)
conn=DriverManager.getConnection("jdbc:odbc:ODBC源","用户名","密码口令");
else
conn=DriverManager.getConnection(sqlUrl);
}
catch(SQLException es){
System.err.println("和库连接时出错:"+es.getMessage());
}
}
protected void executeInsert(String sqlStr){
try{
Statement stmt=conn.createStatement();
stmt.executeUpdate(sqlStr);
}
catch(SQLException es){
System.err.println("执行插入时:"+es.getMessage());
}
}
protected void executeUpdate(String sqlStr){
try{
Statement stmt=conn.createStatement();
stmt.executeUpdate(sqlStr);
}
catch(SQLException e){
System.err.println("error in query record");
}
}
//查寻
protected ResultSet executeQuery(String sqlStr){
rs=null;
try{
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sqlStr);
}
catch(SQLException ex){
System.err.println("执行查寻出错:"+ex.getMessage());
}
return rs;
}
protected ResultSet executeScrollableQuery(String sqlStr){
rs=null;
try{
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sqlStr);
}
catch(SQLException e){
System.err.println("执行动态查寻出错");
}
return rs;
}
//得到表记录总数
protected int getRecordCount(String sTableName){
rs=null;
int CountResult=0;
String sqlStr="select count(*) from "+sTableName;
try{
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sqlStr);
if(rs.next())
CountResult=rs.getInt(1);
rs=null;
stmt.close();
}
catch(SQLException ex){
System.err.println(ex.getMessage());
}
return CountResult;
}
//得到记录总页数
protected int getTotalPage(String sTableName,int iPageSize){
int totalPage;
int totalRecNum=getRecordCount(sTableName);
if(totalRecNum%iPageSize==0)
totalPage=totalRecNum/iPageSize;
else
totalPage=totalRecNum/iPageSize+1;
return totalPage;
}
protected String convert(String InputStr){
String converted=new String();
byte[] bytes;
try{
bytes=InputStr.getBytes("ISO8859-1");
converted=new String(bytes,"GB2312");
}
catch(java.io.UnsupportedEncodingException e){
System.out.print("error");
}
return converted;
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
}
Q5: 都说java是开源,怎么样才能找到java的开源项目代码啊?不知道哪些网站的开源项目和代码多些,谢谢
java开源的项目,你需要哪些方便的呢,公司用的比较多的是apache 提供的一些项目,这些项目是有人维护的,这些才能称为开源的项目,比如apache ftp,等等
java手机论坛开源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java开发论坛网站、java手机论坛开源代码的信息别忘了在本站进行查找喔。






