bbs代码java java论坛系统源码

如何用java写一个论坛?自己写的话,运用行不高 , 考虑的肯定也不够 。\x0d\x0a开源的bbs还是很多的,建议使用开源的(可作为商业用途)\x0d\x0a推荐几个:\x0d\x0a1.JForum\x0d\x0aJForum 是采用Java开发的功能强大且稳定的论坛系统 。它提供了抽象的接口、高效的论坛引擎以及易于使用的管理界面,同时具有完全的权限控制、多语言支持(包括中文)、高性能、可自定义的用户接口、安全、支持多数据库等等特性 。\x0d\x0aJForum 采用 FreeMarker 作为页面模板引擎 , 支持包括中文在内的二十几种语言 。\x0d\x0aJForum 最大的优点是采用 BSD 开源协议,你可以最大限度的进行任何修改和扩展,包括商业用途 。\x0d\x0a2.mvnForum\x0d\x0amvnForum 是一个来自越南开发的开源 Java 论坛软件,没有使用任何花哨的框架,mvnForum仅使用Servlet和JSP为您提供一个功能强大且高效的论坛系统,支持任何标准的Servlet容器 , 附带包括中文在内的多语言的支持 。\x0d\x0a不过好久没更新了 。最近好像是推出企业版,开始走商业化道路 。\x0d\x0a3.iforums\x0d\x0aiforums是为了更好的使jforum适用于中文论坛系统,而做的二次开发 。iforums精仿国内最流行的Discuz! 论坛系统 , 提供了一个界面美 观,高效率的论坛,一个易于使用的管理面板,先进的权限控制系统\x0d\x0a\x0d\x0a连接地址就不贴了(贴了估计审核又不过),百度下!\x0d\x0a个人建议使用jforum,你可以根据你们具体情况适当选择,强烈不建议资自己写!\x0d\x0a\x0d\x0a如有问题再追问 , good luck!
如何用Java制作bbs?急~~1.建立好数据库
2.在MyEclipse中,建立web项目,把项目部署在服务器(Tomcat)上,把数据库连到项目中
3.在网上下载一个bbsbbs代码java的静态页面, 把它粘贴到web项目中,修改其属性,使其变为jsp文件
4.在web项目中,封装一个连接数据库bbs代码java的类
5.在修改好的jsp文件中,通过递归方法,容器,等把帖子放入容器中,在相关代码处(就是展现帖子的html),通过Iterator再把相关主题贴,回复帖子的主题拿出来,通过参数传递id,超级连接的方式,回复帖子的主题连接到回复帖子的详细内容
只能大致说这么多bbs代码java了,bbs代码java你 可以到网上搜源代码
用 java能 做论坛程序吗像Discuz!样的?可以,简单的说就是JSP(因为JSP使用的是JAVA语法)做论坛就是处理与数据库之间的数据交换,ASP 可以ASP.NET 可以PHP 也可以 , 比如bbs代码java你用JSP与MySql来做论坛,如果要把自己的机器作为服务器供别人访问可以装Tomcat或Apache或IIS,他们都是用来做WEB服务器的,装bbs代码java了上面的东东bbs代码java你就可以在自己的机器上运行jsp文件,对于数据库,你暂且勇ACCESS来充当,此外还有学习sql(结构化查询语言)是用来访问数据库的 。
好处:安全性高
基于java的BBS论坛系统的设计与实现对于编写基于Java的BBS论坛系统, 首先要确定你的框架与开发环境, 需要考虑如下问题
选用什么数据库 mysql还是sqlserver
选用什么开发环境eclipse还是idea
选用设么技术框架, 原生jsp还是springboot还是springmvc mybaits
然后设计你的数据库, 搭建项目脚手架, 跑通你的javaweb系统
然后开始实现controller层, dao层,service层, jsp页面代码
我最近写的几个论坛系统都是这样设计的, 希望能够帮助你
谁能给我个完整的java 分页代码 谢谢了import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import com.lqh.dao.db.DBCon;
public class PageDAO {
public static final String Text = "text";
public static final String Image = "image";
public static final String BbsText = "bbstext";
public static final String BbsImage = "bbsimage";
private HttpServletRequest request;
private int currentpage = 1; // 当前是第几页
private int pagecount = 0; // 一共有多少页
private int rscount = 0; // 一共有多少行
private int pagesize = 10; // 每页有多少行[默认为20行]
public PageDAO(HttpServletRequest request) {
this.request = request;
}
public int getCurrentpage() {
return currentpage;
}
public void setCurrentpage(int currentpage) {
this.currentpage = currentpage;
}
public int getPagecount() {
return pagecount;
}
public void setPagecount(int pagecount) {
this.pagecount = pagecount;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getRscount() {
return rscount;
}
public void setRscount(int rscount) {
this.rscount = rscount;
}
/**
* 传入SQL语句获取总记录数
*/
public int getRsCountForRs(String sql) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
DBCon dbcon=new DBCon();
try {
conn = dbcon.getConn();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if (rs.next()) {
rs.last();
this.rscount = rs.getRow();
} else {
this.rscount = 0;
}
} catch (Exception ex) {
【bbs代码java java论坛系统源码】ex.printStackTrace();
this.rscount = 0;
} finally {
dbcon.tryClose(rs, ps, conn);
}
return this.rscount;
}
public int getRsCountForSQL(String sql) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
DBCon dbcon=new DBCon();
try {
conn = dbcon.getConn();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if (rs.next()) {
this.rscount = rs.getInt("rscount");
} else {
this.rscount = 0;
}
} catch (Exception ex) {
ex.printStackTrace();
this.rscount = 0;
} finally {
dbcon.tryClose(rs, ps, conn);
}
return this.rscount;
}
/**
* 获取总页数
*
* @return int
*/
public int getPageCount() {
try {
this.pagecount = ((this.rscount - 1) / this.pagesize)1;
} catch (Exception ex) {
this.pagecount = 0;
}
return this.pagecount;
}
/**
* 获取当前页码的设置
*
* @return int
*/
public int getCurrentPage() {
try {
if (this.request.getParameter("currentpage") != null
Integer.parseInt(this.request
.getParameter("currentpage"))1) {
this.currentpage = Integer.parseInt(this.request
.getParameter("currentpage"));
} else {
this.currentpage = 1;
}
} catch (Exception ex) {
this.currentpage = 1;
}
return this.currentpage;
}
/**
* 分页工具条
*
* @param fileName
*String
* @return String
*/
public String pagetool(String flag) {
StringBuffer str = new StringBuffer();
String url = this.getParamUrl();
int ProPage = this.currentpage - 1;
int Nextpage = this.currentpage1;
// 文字的分页
if (flag.equals(PageDAO.Text)) {
str.append("form method='post' name='pageform' action=''");
str
.append("table style='color: windowframe' width='100%' border='0' cellspacing='0' cellpadding='0'");
str.append("tr");
str.append("td width='20%'/td");
str.append("td height='26'");
str.append("共有记录"this.rscount"条 ");
str.append("共"this.pagecount"页 ");
str.append("每页"this.pagesize"记录 ");
str.append("现在"this.currentpage"/"this.pagecount"页");
str.append("/tdtd");
if (this.currentpage1) {
str.append("a href='"url"currentpage=1'首页/a");
str.append(" ");
str.append("a href='"url"currentpage="ProPage
"'上一页/a");
str.append(" ");
} else {
str.append("首页");
str.append(" ");
str.append("上一页");
str.append(" ");
}
if (this.currentpagethis.pagecount) {
str.append("a href='"url"currentpage="Nextpage
"'下一页/a");
str.append(" ");
} else {
str.append("下一页");
str.append(" ");
}
if (this.pagecount1this.currentpage != this.pagecount) {
str.append("a href='"url"currentpage="pagecount
"'尾页/a");
str.append(" ");
} else {
str.append("尾页");
str.append(" ");
}
str.append("转到");
str
.append("select name='currentpage' onchange='javascript:ChangePage(this.value);'");
for (int j = 1; j = pagecount; j) {
str.append("option value='"j"'");
if (currentpage == j) {
str.append("selected");
}
str.append("");
str.append(""j"");
str.append("/option");
}
str.append("/select页");
str.append("/tdtd width='3%' /td/tr/table");
str.append("script language='javascript'");
str.append("function ChangePage(testpage){");
str.append("document.pageform.action='"url
"currentpage=' testpage '';");
str.append("document.pageform.submit();");
str.append("}");
str.append("/script");
str.append("/form");
} else if (flag.equals(PageDAO.Image)) {
/**
* 图片的分页
*/
} else if (flag.equals(PageDAO.BbsText)) {
/**
* 论坛形式的分页[直接以数字方式体现]
*/
str
.append("table width='100%' border='0' cellspacing='0' cellpadding='0'");
str.append("tr");
str.append("td width='3%' /td");
str.append("td height='26'");
str.append("记录"this.rscount"条");
str.append("共"this.pagecount"页");
str.append("每页"this.pagesize"记录");
str.append("现在"this.currentpage"/"this.pagecount"页");
str.append("/tdtd");
// 设定是否有首页的链接
if (this.currentpage1) {
str.append("a href='"url"currentpage=1'首页/a");
str.append("");
}
// 设定是否有上一页的链接
if (this.currentpage1) {
str.append("a href='"url"currentpage="ProPage
"'上一页/a");
str.append("");
}
// 如果总页数只有10的话
if (this.pagecount = 10) {
for (int i = 1; i = this.pagecount; i) {
if (this.currentpage == i) {
str.append("font color=red["i
"]/font");
} else {
str.append("a href='"url"currentpage="i
"'"i"/a");
}
}
} else {
// 说明总数有超过10页
// 制定特环的开始页和结束页
int endPage = this.currentpage4;
if (endPagethis.pagecount) {
endPage = this.pagecount;
}
int startPage = 0;
if (this.pagecount = 8this.currentpage = 8) {
startPage = this.currentpage - 5;
} else {
// 表示从第一页开始算
startPage = 1;
}
System.out.println(startPage);
System.out.println(endPage);
for (int i = startPage; i = endPage; i) {
if (this.currentpage == i) {
str.append("font color=red["i
"]/font");
} else {
str.append("a href='"url"currentpage="i
"'"i"/a");
}
}
}
// 设定是否有下一页的链接
if (this.currentpagethis.pagecount) {
str.append("a href='"url"currentpage="Nextpage
"'下一页/a");
str.append("");
}
// 设定是否有尾页的链接
if (this.pagecount1this.currentpage != this.pagecount) {
str.append("a href='"url"currentpage="pagecount
"'尾页/a");
str.append("");
}
str.append("/tdtd width='3%' /td/tr/table");
} else if (flag.equals(PageDAO.BbsImage)) {
/**
* 论坛形式的分页[以图片的方式体现]
*/
// 设定分页显示的CSS
str.append("style");
str
.append("BODY {FONT-SIZE: 12px;FONT-FAMILY:宋体;WIDTH: 60%; PADDING-LEFT: 25px;}");
str
.append("DIV.meneame {PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 80%; PADDING-BOTTOM: 3px; MARGIN: 3px; COLOR: #ff6500; PADDING-TOP: 3px; TEXT-ALIGN: center}");
str
.append("DIV.meneame A {BORDER-RIGHT: #ff9600 1px solid; PADDING-RIGHT: 7px; BACKGROUND-POSITION: 50% bottom; BORDER-TOP: #ff9600 1px solid; PADDING-LEFT: 7px; BACKGROUND-IMAGE: url('"
this.request.getContextPath()
"/meneame.jpg'); PADDING-BOTTOM: 5px; BORDER-LEFT: #ff9600 1px solid; COLOR: #ff6500; MARGIN-RIGHT: 3px; PADDING-TOP: 5px; BORDER-BOTTOM: #ff9600 1px solid; TEXT-DECORATION: none}");
str
.append("DIV.meneame A:hover {BORDER-RIGHT: #ff9600 1px solid; BORDER-TOP: #ff9600 1px solid; BACKGROUND-IMAGE: none; BORDER-LEFT: #ff9600 1px solid; COLOR: #ff6500; BORDER-BOTTOM: #ff9600 1px solid; BACKGROUND-COLOR: #ffc794}");
str
.append("DIV.meneame SPAN.current {BORDER-RIGHT: #ff6500 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: #ff6500 1px solid; PADDING-LEFT: 7px; FONT-WEIGHT: bold; PADDING-BOTTOM: 5px; BORDER-LEFT: #ff6500 1px solid; COLOR: #ff6500; MARGIN-RIGHT: 3px; PADDING-TOP: 5px; BORDER-BOTTOM: #ff6500 1px solid; BACKGROUND-COLOR: #ffbe94}");
str
.append("DIV.meneame SPAN.disabled {BORDER-RIGHT: #ffe3c6 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: #ffe3c6 1px solid; PADDING-LEFT: 7px; PADDING-BOTTOM: 5px; BORDER-LEFT: #ffe3c6 1px solid; COLOR: #ffe3c6; MARGIN-RIGHT: 3px; PADDING-TOP: 5px; BORDER-BOTTOM: #ffe3c6 1px solid}");
str.append("/style");
str.append("div class=\"meneame\"");
// 判定是否有上一页
if (this.currentpage1) {
str.append("a href='"url
"currentpage=1' hidefocus=\"true\"首页/a");
str.append("");
str.append("a href='"url"currentpage="ProPage
"' hidefocus=\"true\"上一页/a");
str.append("");
} else {
str.append("span class=\"disabled\"首页/span");
str.append("");
str.append("span class=\"disabled\"上一页/span");
str.append("");
}
// 显示中间的图片
if (this.pagecount = 10) {
for (int i = 1; i = this.pagecount; i) {
if (this.currentpage == i) {
str.append("span class=\"current\""i"/span");
} else {
str.append("a href='"url"currentpage="i
"' hidefocus=\"true\""i
"/a");
}
}
} else {
// 说明总数有超过10页
// 制定特环的开始页和结束页
int endPage = this.currentpage4;
if (endPagethis.pagecount) {
endPage = this.pagecount;
}
int startPage = 0;
if (this.pagecount = 8this.currentpage = 8) {
startPage = this.currentpage - 5;
} else {
// 表示从第一页开始算
startPage = 1;
}
System.out.println(startPage);
System.out.println(endPage);
for (int i = startPage; i = endPage; i) {
if (this.currentpage == i) {
str.append("span class=\"current\""i"/span");
} else {
str.append("a href='"url"currentpage="i
"' hidefocus=\"true\""i
"/a");
}
}
}
// 判断下一页和尾页
if (this.currentpagethis.pagecount) {
if (this.currentpagethis.pagecount - 10) {
str.append("...");
str.append("a href='"url"currentpage="
(this.pagecount - 1)"' hidefocus=\"true\""
(this.pagecount - 1)"/a");
str.append("a href='"url"currentpage="
this.pagecount"' hidefocus=\"true\""
this.pagecount"/a");
}
str.append("a href='"url"currentpage="Nextpage
"' hidefocus=\"true\"下一页/a");
str.append("");
} else {
str.append("span class=\"disabled\"下一页/span");
str.append("");
}
if (this.pagecount1this.currentpage != this.pagecount) {
str.append("a href='"url"currentpage="pagecount
"' hidefocus=\"true\"尾页/a");
str.append("");
} else {
str.append("span class=\"disabled\"尾页/span");
str.append("");
}
str.append("/div");
}
return str.toString();
}
public String getParamUrl() {
String url = "";
url = this.request.getRequestURI().toString();
if (url.indexOf("?") == -1) {
url = url"?";
}
String totalParams = "";
Enumeration params = this.request.getParameterNames();// 得到所有参数名
while (params.hasMoreElements()) {
String tempName = params.nextElement().toString();
String tempValue = https://www.04ip.com/post/this.request.getParameter(tempName);
if (tempValue != null!tempValue.equals("")
!tempName.equals("currentpage")) {
if (totalParams.equals("")) {
totalParams = totalParamstempName"="tempValue;
} else {
totalParams = totalParams""tempName"="
tempValue;
}
}
}
String totalUrl = urltotalParams;
return totalUrl;
}
}
bbs论坛管理员禁言功能如何用Java实现用户增加一个发帖权限字段
不就好了 发帖前判断字段为1可以发帖 否则是禁言
关于bbs代码java和java论坛系统源码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读