现在的位置: 首页 > 综合 > 正文

最简单的BBS项目源码展示

2018年01月09日 ⁄ 综合 ⁄ 共 10216字 ⁄ 字号 评论关闭

下载地址http://download.csdn.net/detail/hsttmht/3987324

articletree.jsp

<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@ page import="java.sql.*" %>

<%
String admin = (String)session.getAttribute("admin");
if(admin != null && admin.equals("true")) {
	login = true;
}
%>

<%!
String str = "";
boolean login = false;
private void tree(Connection conn, int id, int level) {
	Statement stmt = null;
	ResultSet rs = null;
	String preStr = "";
	for(int i=0; i<level; i++) {
		preStr += "----";
	}
	try {
		stmt = conn.createStatement();
		String sql = "select * from article where pid = " + id;
		rs = stmt.executeQuery(sql);
		String strLogin = "";
		
		while(rs.next()) {
			if(login) {
				strLogin = "<td><a href='Delete.jsp?id=" + rs.getInt("id") + "&pid=" + rs.getInt("pid") + "'>删除</a>";
			}
			str += "<tr><td>" + rs.getInt("id") + "</td><td>" +
			       preStr + "<a href='ShowArticleDetails.jsp?id=" + rs.getInt("id") + "'>" + 
			       rs.getString("title") + "</a></td>" +
			       strLogin +
			       "</td></tr>";
			if(rs.getInt("isleaf") != 0) {
				tree(conn, rs.getInt("id"), level+1);
			}
		}
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		try {
			if(rs != null) {
				rs.close();
				rs = null;
			}
			if(stmt != null) {
				stmt.close();
				stmt = null;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
%>

<%
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/bbs";
Connection conn = DriverManager.getConnection(url,"root","root");

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from article where pid = 0");
String strLogin = "";
while(rs.next()) {
	if(login) {
		strLogin = "<td><a href='Delete.jsp?id=" + rs.getInt("id") + "&pid=" + rs.getInt("pid") + "'>删除</a>";
	}
	str += "<tr><td>" + rs.getInt("id") + "</td><td>" +
    	   "<a href='ShowArticleDetails.jsp?id=" + rs.getInt("id") + "'>" + 
           rs.getString("title") + "</a></td>" +
           strLogin +
           "</td></tr>";
   	if(rs.getInt("isleaf") != 0) {
   		tree(conn, rs.getInt("id"), 1);
   	}
}
rs.close();
stmt.close();
conn.close();
%>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>

<table border="1">
<%= str %>
<% 
str = ""; 
login = false;
%>
</table><br>
<a href="Post.jsp">发表新帖</a>
</body>

</html>

ShowArtciletree.jsp

<%@ page language="java" contentType="text/html; charset=gbk"
	pageEncoding="gbk"%>
<%@ page import="java.sql.*"%>
<%!String str = "";
	String strLogin = "";
	boolean login = false;%>
<%
	String admin = (String) session.getAttribute("admin");
	if (admin != null && admin.equals("true")) {
		login = true;
	}
%>
<%
	int pageSize = 3;

	String strPageNo = request.getParameter("pageNo");
	int pageNo;
	if (strPageNo == null || strPageNo.equals("")) {
		pageNo = 1;
	} else {
		try {
			pageNo = Integer.parseInt(strPageNo.trim());
		} catch (NumberFormatException e) {
			pageNo = 1;
		}
		if (pageNo <= 0)
			pageNo = 1;
	}

	Class.forName("com.mysql.jdbc.Driver");
	String url = "jdbc:mysql://localhost/bbs?user=root&password=root";
	Connection conn = DriverManager.getConnection(url);

	Statement stmtCount = conn.createStatement();
	ResultSet rsCount = stmtCount
			.executeQuery("select count(*) from article where pid = 0");
	rsCount.next();
	int totalRecords = rsCount.getInt(1);

	int totalPages = totalRecords % pageSize == 0 ? totalRecords
			/ pageSize : totalRecords / pageSize + 1;
	if (pageNo > totalPages)
		pageNo = totalPages;

	int startPos = (pageNo - 1) * pageSize;

	Statement stmt = conn.createStatement();
	ResultSet rs = stmt
			.executeQuery("select * from article where pid = 0 order by pdate desc limit "
					+ startPos + "," + pageSize);
%>


<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=gbk">
		<title>Insert title here</title>
	</head>
	<body>
		<a href="Post.jsp">发表新帖</a>
		<br>

		<table border="1">

			<%
				while (rs.next()) {
					if (login) {
						strLogin = "<td><a href='Delete.jsp?id=" + rs.getInt("id")
								+ "&pid=" + rs.getInt("pid") + "'>删除</a>";
					}
					str += "<tr><td>" + "<a href='ShowArticleDetails.jsp?id="
							+ rs.getInt("id") + "'>" + rs.getString("title")
							+ "</td><td>" + strLogin + "</td></tr>";
					;

				}
				rs.close();
				stmt.close();
				conn.close();
			%>

			<%=str%>
			<%
				str = "";
			%>
		</table>
		<br>
		共<%=totalPages%>页 第<%=pageNo%>页
		<br>
		<a href="ShowArticleFlat.jsp?pageNo=<%=pageNo - 1%>"> < </a>
		    
		<a href="ShowArticleFlat.jsp?pageNo=<%=pageNo + 1%>"> > </a>

		<form name="form1" action="ShowArticleFlat.jsp">
			<select name="pageNo" onchange="document.form1.submit()">
				<%
					for (int i = 1; i <= totalPages; i++) {
				%>
				<option value=<%=i%> <%=(pageNo == i) ? "selected" : ""%>>
					第<%=i%>页
					<%
					}
				%>
				
			</select>
		</form>

		<form name="fom2" action="ShowArticleFlat.jsp">
			<input type=text size=4 name="pageNo" value=<%=pageNo%> />
			<input type="submit" value="go" />
		</form>

	</body>

</html>

showarticledetails.jsp

<%@ page language="java" import="java.sql.*" pageEncoding="GBK"%>
<html>
	<head>
		<title>JDBC</title>
	</head>
	<body>
		<%!ResultSet rs = null;
	PreparedStatement pstmt = null;
	Connection conn = null;%>
		<%
			String strid = request.getParameter("id");
			try {
				Class.forName("com.mysql.jdbc.Driver");
				conn = DriverManager.getConnection(
						"jdbc:mysql://localhost:3306/bbs", "root", "root");
				Statement stmt = conn.createStatement();
				ResultSet rs = stmt
						.executeQuery("select * from article where pid = "
								+ strid);
				while (rs.next()) {
		%>
		<table width="500" align="center" border="2" bgcolor="#FFFF00">
			<tr>
				<td>
					ID
				</td>
				<td><%=rs.getInt("id")%></td>
			</tr>
			<tr>
				<td>
					Title
				</td>
				<td><%=rs.getString("title")%></td>
			</tr>
			<tr>
				<td>
					Content
				</td>
				<td><%=rs.getString("cont")%></td>
			</tr>
		</table>
		<a href="Reply.jsp?id=<%=rs.getInt("id")%>&rootid=<%=rs.getInt("rootid")%>">replay</a>
		<%
			}
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				try {
					if (rs != null) {
						rs.close();
					}
					if (pstmt != null) {
						pstmt.close();
					}
					if (conn != null) {
						conn.close();
					}
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		%>
	</body>
</html>

delete.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="java.sql.*" %>

<%!
private void del(Connection conn, int id) {
	Statement stmt = null;
	ResultSet rs = null;
	try {
		stmt = conn.createStatement();
		String sql = "select * from article where pid = " + id;
		rs = stmt.executeQuery(sql);
		while(rs.next()) {
			del(conn , rs.getInt("id"));
		}
		stmt.executeUpdate("delete from article where id = " + id);
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		try {
			if(rs != null) {
				rs.close();
				rs = null;
			}
			if(stmt != null) {
				stmt.close();
				stmt = null;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
%>
<%
String admin = (String)session.getAttribute("admin");
if(admin == null || !admin.equals("true")) {
	out.println("对不起,你无权删除本帖!");
	return;
}
%>

<%
int id = Integer.parseInt(request.getParameter("id"));
int pid = Integer.parseInt(request.getParameter("pid"));
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/bbs";
Connection conn = DriverManager.getConnection(url,"root","1234");
conn.setAutoCommit(false);

del(conn , id);

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select count(*) from article where pid=" + pid);
rs.next();
int count = rs.getInt(1);
rs.close();
stmt.close();

if(count <= 0) {
	Statement stmtUpdate = conn.createStatement();
	stmtUpdate.executeUpdate("update article set isleaf = 0 where id = " + pid);
	stmtUpdate.close();
}
conn.commit();
conn.setAutoCommit(true);
conn.close();
response.sendRedirect("articletree.jsp");
%>

reply.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<%
	int id = Integer.parseInt(request.getParameter("id"));
	int rootid = Integer.parseInt(request.getParameter("rootid"));
%>


<body>
	<form action="ReplyOK.jsp" method="post">

		<input type="hidden" name="id" value="<%=id%>" />
		<input type="hidden" name="rootid" value="<%=rootid%>" />
		<table>
			<tr>
				<td>
					标题:
					<input type="text" name="title">
				</td>
			</tr>
			<tr>
				<td>
					内容:
					<textarea name="cont" rows="15" cols="80"></textarea>
				</td>
			</tr>
			<tr>
				<td>
					提交:
					<input type="submit" value="submit" />
				</td>
			</tr>
		</table>
	</form>
</body>

replyOK.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>

<%
	request.setCharacterEncoding("GBK");

	int id = Integer.parseInt(request.getParameter("id"));
	int rootid = Integer.parseInt(request.getParameter("rootid"));
	String title = request.getParameter("title");
	String cont = request.getParameter("cont");

	cont = cont.replaceAll("\n", "<br>");

	Class.forName("com.mysql.jdbc.Driver");
	Connection conn = DriverManager.getConnection(
			"jdbc:mysql://localhost:3306/bbs", "root", "root");

	conn.setAutoCommit(false);

	String sql = "insert into article values (null, ?, ?, ?, ?, now(), 0)";
	PreparedStatement pstmt = conn.prepareStatement(sql);

	pstmt.setInt(1, id);
	pstmt.setInt(2, rootid);
	pstmt.setString(3, title);
	pstmt.setString(4, cont);
	pstmt.executeUpdate();

	Statement stmt = conn.createStatement();
	stmt.executeUpdate("update article set isleaf = 1 where id = " + id);

	conn.commit();
	conn.setAutoCommit(true);//事务处理
	stmt.close();
	pstmt.close();
	conn.close();
%>

请点击下面链接,跳转到<a href="articletree.jsp">主题列表</a>

login.jsp

<%@ page contentType="text/html; charset=gbk" pageEncoding="gbk" %>

<%
String action = request.getParameter("action");
if(action != null && action.equals("login")) {
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	if(username == null || !username.equals("admin")) {
		out.println("username not correct!");	
	}else if(password == null || !password.equals("admin")) {
		out.println("password not correct!");
		
	}else {
		session.setAttribute("admin", "true");
		response.sendRedirect("articletree.jsp");
	}
}
%>
<form action="Login.jsp" method="post">
	<input type="hidden" name="action" value="login">
	<table border="1px">
		<tr><td>UserName:</td><td><input type="text" name="username"></td>
		<tr><td>PassWord:</td><td><input type="password" name="password"></td>
		<tr><td></td><td><input type="submit" value="submit"></td></tr>
	</table>
</form>

post.jsp

<%@ page pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<%
	request.setCharacterEncoding("GBK");
	String action = request.getParameter("action");
	if (action != null && action.trim().equals("post")) {
		String title = request.getParameter("title");
		String cont = request.getParameter("cont");

		cont = cont.replaceAll("\n", "<br>");

		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager.getConnection(
				"jdbc:mysql://localhost:3306/bbs", "root", "root");

		conn.setAutoCommit(false);

		int rootId = -1;

		String sql = "insert into article values (null, ?, ?, ?, ?, now(), ?)";
		PreparedStatement pstmt = conn.prepareStatement(sql,
				Statement.RETURN_GENERATED_KEYS);
		pstmt.setInt(1, 0);
		pstmt.setInt(2, rootId);
		pstmt.setString(3, title);
		pstmt.setString(4, cont);
		pstmt.setInt(5, 0);
		pstmt.executeUpdate();

		ResultSet rsKey = pstmt.getGeneratedKeys();
		rsKey.next();
		rootId = rsKey.getInt(1);

		Statement stmt = conn.createStatement();
		stmt.executeUpdate("update article set rootid = " + rootId
				+ " where id = " + rootId);

		conn.commit();
		conn.setAutoCommit(true);
		pstmt.close();
		stmt.close();
		conn.close();

		response.sendRedirect("ShowArticleDetails.jsp");

	}
%>

<body>
	发表新贴
	<form action="post.jsp" method="post">
		<input type="hidden" name="action" value="post" />
		<table>
			<tr>
				<td>
					标题:
					<input type="text" name="title">
				</td>
			</tr>
			<tr>
				<td>
					内容:
					<textarea name="cont" rows="15" cols="80"></textarea>
				</td>
			</tr>
			<tr>
				<td>
					提交:
					<input type="submit" value="submit" />
				</td>
			</tr>
		</table>
	</form>
</body>

抱歉!评论已关闭.