JavaWeb项目—BBS论坛

项目步骤:

1)将静态html文件转换为JSP文件(涉及到了编码的问题)

2)封装DB

 1 package com.bjsxt.bbs;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8
 9 //封装DB,方便操作
10 public class DB {
11     public static Connection getConn() {
12         Connection conn = null;
13         try {
14             Class.forName("com.mysql.jdbc.Driver");
15             conn = DriverManager.getConnection(
16                     "jdbc:mysql://localhost:3306/bbs", "root", "123456");
17         } catch (ClassNotFoundException e) {
18             e.printStackTrace();
19         } catch (SQLException e) {
20             e.printStackTrace();
21         }
22         return conn;
23     }
24
25     public static Statement createStmt(Connection conn) {
26         Statement stmt = null;
27         try {
28             stmt = conn.createStatement();
29         } catch (SQLException e) {
30             e.printStackTrace();
31         }
32         return stmt;
33     }
34
35     public static ResultSet executeQuery(Statement stmt, String sql) {
36         ResultSet rs = null;
37         try {
38             rs = stmt.executeQuery(sql);
39         } catch (SQLException e) {
40             e.printStackTrace();
41         }
42         return rs;
43     }
44
45     public static void close(Connection conn) {
46         if (conn != null) {
47             try {
48                 conn.close();
49             } catch (SQLException e) {
50                 e.printStackTrace();
51             }
52             conn = null;
53         }
54     }
55
56     public static void close(Statement stmt) {
57         if (stmt != null) {
58             try {
59                 stmt.close();
60             } catch (SQLException e) {
61                 e.printStackTrace();
62             }
63             stmt = null;
64         }
65     }
66
67     public static void close(ResultSet rs) {
68         if (rs != null) {
69             try {
70                 rs.close();
71             } catch (SQLException e) {
72                 e.printStackTrace();
73             }
74             rs = null;
75         }
76     }
77 }

3)树状结构展现(一)

主要代码:

Article.java

 1 package com.bjsxt.bbs;
 2
 3 import java.util.Date;
 4
 5 public class Article {
 6     private int id;
 7     private int pid;
 8     private int rootId;
 9     private String title;
10     private String cont;
11     private Date pDate;
12     private boolean isLeaf;
13     private int grade;
14
15     public int getGrade() {
16         return grade;
17     }
18
19     public void setGrade(int grade) {
20         this.grade = grade;
21     }
22
23     public int getId() {
24         return id;
25     }
26
27     public void setId(int id) {
28         this.id = id;
29     }
30
31     public int getPid() {
32         return pid;
33     }
34
35     public void setPid(int pid) {
36         this.pid = pid;
37     }
38
39     public int getRootId() {
40         return rootId;
41     }
42
43     public void setRootId(int rootId) {
44         this.rootId = rootId;
45     }
46
47     public String getTitle() {
48         return title;
49     }
50
51     public void setTitle(String title) {
52         this.title = title;
53     }
54
55     public String getCont() {
56         return cont;
57     }
58
59     public void setCont(String cont) {
60         this.cont = cont;
61     }
62
63     public Date getpDate() {
64         return pDate;
65     }
66
67     public void setpDate(Date pDate) {
68         this.pDate = pDate;
69     }
70
71     public boolean isLeaf() {
72         return isLeaf;
73     }
74
75     public void setLeaf(boolean isLeaf) {
76         this.isLeaf = isLeaf;
77     }
78 }

article.jsp文件

<%!
private void tree(Set<Article> articles,Connection conn,int id,int grade){
    String sql="select * from article where pid="+id;
    Statement stmt=DB.createStmt(conn);
    ResultSet rs=DB.executeQuery(stmt, sql);
    try{
    while(rs.next()){
    Article a=new Article();
    a.setId(rs.getInt("id"));
    a.setPid(rs.getInt("pid"));
    a.setRootId(rs.getInt("rootid"));
    a.setTitle(rs.getString("titel"));
    a.setLeaf(rs.getInt("isleaf")==0?true:false);
    a.setpDate(rs.getTimestamp("pdate"));
    a.setGrade(grade+1);
    articles.add(a);
    if(!a.isLeaf()){
    tree(articles, conn, id, grade+1);
    }
    }catch (SQLException e){
    e.printStackTrace();
    }

}
 %>

 <%
 Set<Article> articles=new HashSet<Article>();
 Connection conn=DB.getConn();
 tree(articles,conn,0,0);
 DB.close(conn);
  %>

未完

时间: 2024-11-20 09:14:09

JavaWeb项目—BBS论坛的相关文章

python 学习笔记十九 django项目bbs论坛

跨站请求伪造保护 CSRF 中间件和模板标签提供对跨站请求伪造简单易用的防护.某些恶意网站上包含链接.表单按钮或者JavaScript ,它们会利用登录过的用户在浏览器中的认证信息试图在你的网站上完成某些操作,这就是跨站攻击.还有另外一种相关的攻击叫做“登录CSRF”,攻击站点触发用户浏览器用其它人的认证信息登录到其它站点. 全局: 中间件 django.middleware.csrf.CsrfViewMiddleware 局部: @csrf_protect,为当前函数强制设置防跨站请求伪造功能

Django小项目简单BBS论坛

开发一个简单的BBS论坛 项目需求: 1 整体参考"抽屉新热榜" + "虎嗅网" 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数.点赞数展示 5 在线用户展示 6 允许登录用户发贴.评论.点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论 知识必备:(注:没有必备下面知识的同学,请返回去看会之后再看下面的内容防止蒙了~~!) 1 Django 2 HTML\CSS\JS 3 BootStrap 4 Jquery 设计表结构 1.表结构重要性 在开发

Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点

开发一个简单的BBS论坛 项目需求: 1 整体参考“抽屉新热榜” + “虎嗅网” 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数.点赞数展示 5 在线用户展示 6 允许登录用户发贴.评论.点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论 知识必备:(注:没有必备下面知识的同学,请返回去看会之后再看下面的内容防止蒙了~~!) 1 Django 2 HTML\CSS\JS 3 BootStrap 4 Jquery 设计表结构 1.表结构重要性 在开发任何项目的时候,设计到数据库,

分享java web 期末项目实验源码20套,BBS论坛,ERP管理系统,OA自动化等等

我自己也从里面学习到了很多东西!? 1.BBS论坛系统(jsp+sql)2.ERP管理系统(jsp+servlet)3.OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)4.博客系统(struts+hibernate+spring)5.车辆管理系统(struts+hibernate+spring+oracle)6.家庭理财系统(java+applet)7.教材订购系统(jsp+servlet+mysql)8.酒店管理系统(jsp+servlet+mys

PHP+HTML简单实现BBS论坛与回帖

本文主要讲述如何通过PHP+HTML简单实现BBS论坛和发帖/回帖的功能,这是提取我们php项目的部分内容.主要内容包括: 1.通过JavaScript和Iframe实现局部布局界面 2.PHP如何定义类实现访问数据库功能 3.实现简单的BBS论坛和发帖/回帖功能 由于这个项目是十个人在寒假完成,所以采用了SAE搭建在线的后台数据库,其他人在通过Apache本地设计网页.访问数据库的方法实现,相当于简单的BS三端访问. 源码下载地址: 访问http://localhost:8080/testph

bbs论坛浏览器兼容性问题

一直都是在chrome上进行调试,今天终于把bbs论坛这个项目搭建完了,进入IE.Firefox看了看 吓哭了!!! 火狐 Edge chrome 特别是加了<!DOCTYPE html>后,chrome都出问题了 心好累 等我解决后再来吧~

Python开发一个简单的BBS论坛

项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被置顶 可进行多级评论 就先这些吧... 知识必备: Django HTML\CSS\JS BootStrap Jquery 设计表结构 1 # -*- coding:utf-8 -*- 2 from django.db import models 3 from django.contrib.aut

利用Django开发BBS论坛(一)

在做任何项目之前,首先需要对此项目做一个分析和功能构造,所以对数据库的创建则为重中之重,因为一些功能都是由数据库进行构建和开发的,所以对数据库的构造是很重要的,那么,关于要开发一个BBS论坛,那么其数据库也好好好地规划一下! 下面则是关于BBS数据库的相关代码! from django.db import models from django.contrib.auth.models import User from django.core.exceptions import Validation

4-源码方式基于LAMP架构搭建BBS论坛或者博客

目录 一.项目简介 二.环境准备 三.编译安装MySQL 四.编译安装Apache 五.编译安装PHP 六.后续配置 七.启动相关服务 八.源码编译软件经验总结 九.部署web应用 排错1: 排错2: 排错3: 大功告成! 课程目标 使用源码方式基于LAMP架构搭建BBS论坛或者博客 本文成功搭建2个网站,一个个人博客,一个是web界面管理mysql数据库的应用 请耐心阅读,细心操作,你也会成功! 思考:yum工具搭建lamp环境和源码包搭建的区别 rpm版本 安装方便,升级.卸载都很灵活,很难