当前位置:文档之家› WEB课程设计bbs论坛

WEB课程设计bbs论坛

WEB课程设计基于Java Web技术开发的BBS论坛院(系)计算机科学与工程学院专业软件工程班级*******姓名*******学号******2010/07/25基于Java Web技术开发的BBS论坛一.模块介绍我承担的是BBS主页面处理这一部分内容:其功能主要是主页面功能的实现:包括最近浏览的显示,帖子标题显示,最后发表时间,更新,以及“登陆”和“注册”的显示等。

1. 运行效果截图如下:2. 主页面HTML框架代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/1999/REC-html401-19991224/loose.dtd"> <HTML><HEAD><TITLE>欢迎访问青鸟学员论坛</TITLE><META http-equiv=Content-Type content="text/html; charset=gbk"> <Link rel="stylesheet"type="text/css"href="style/style.css"/> </HEAD><BODY><DIV><a href="index.jsp"><IMG src="image/logo.gif"></a></DIV><!-- 用户信息、登录、注册 -->&nbsp;<DIV class="h">您尚未<a href="login.jsp">登录</a>&nbsp;| &nbsp; <A href="reg.jsp">注册</A> |</DIV><br><DIV class="h">您好:&nbsp;| &nbsp; <A href="manage/doLogout.jsp">退出</A> |</DIV><br><DIV><!-- 主体 --><DIV class="t"><TABLE cellSpacing="0" cellPadding="0" width="100%"> <TR class="tr2" align="center"><TD colSpan="2">论坛</TD><TD style="WIDTH: 5%;">主题</TD><TD style="WIDTH: 25%">最后发表</TD></TR><!-- 主版块 -->&nbsp;<TR class="tr3"><TD colspan="4"><br></TD></TR><!-- 子版块 -->&nbsp;<TR class="tr3"><TD width="5%">&nbsp;</TD><TH align="left"><IMG src="image/board.gif">&nbsp;</TH><TD align="center"><br></TD><TH>&nbsp;<SPAN></SPAN><BR/>&nbsp;<SPAN></SPAN><SPANclass="gray">[&nbsp; ]</SPAN></TH></TR></TABLE></DIV></DIV></BODY></HTML>二.数据库表的设计数据库代码如下(简要分类说明):1.Table structure for table `tbl_board` //board表--DROP TABLE IF EXISTS `tbl_board`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREA TE TABLE `tbl_board` (`boardId` int(4) NOT NULL auto_increment,`boardName` varchar(50) NOT NULL,`parentId` int(4) NOT NULL,PRIMARY KEY(`boardId`)) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=gbk;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `tbl_board`--LOCK TABLES `tbl_board` WRITE;2.Table structure for table `tbl_topic` //topic表--DROP TABLE IF EXISTS `tbl_topic`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREA TE TABLE `tbl_topic` (`topicId` int(11) NOT NULL auto_increment,`title` varchar(100) NOT NULL,`content` varchar(10000) NOT NULL,`publishTime` datetime NOT NULL,`modifyTime` datetime NOT NULL,`uId` int(4) NOT NULL,`boardId` int(4) NOT NULL,`count` int(4) default NULL,PRIMARY KEY(`topicId`)) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=gbk;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `tbl_topic`--LOCK TABLES `tbl_topic` WRITE;3.Table structure for table `tbl_user` //user表--DROP TABLE IF EXISTS `tbl_user`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREA TE TABLE `tbl_user` (`uId` int(4) NOT NULL auto_increment COMMENT '1',`uName` varchar(20) NOT NULL,`uPass` varchar(20) NOT NULL,`head` varchar(100) NOT NULL,`regTime` datetime NOT NULL,`gender` varchar(2) NOT NULL,PRIMARY KEY(`uId`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=gbk;/*!40101 SET character_set_client = @saved_cs_client */;---- Dumping data for table `tbl_user`--LOCK TABLES `tbl_user` WRITE;三.所涉及的DAO对象如上主JSP页面里所涉及的DAO对象如下:BoardDao boardDao = new BoardDaoImpl(); // 得到版块Dao的实例TopicDao topicDao = new TopicDaoImpl(); // 得到主题Dao的实例UserDao userDao = new UserDaoImpl(); // 得到用户Dao的实例其具体文件所在目录:jspbbs\WebRoot\WEB-INF\classes\com\interfaces\impl文件夹中。

如:UserDaoImpl代码如下:/** erDaoImpl.java* 2007-7-18* UserDao的实现类*/package com.interfaces.impl;import java.sql.*;import java.text.SimpleDateFormat;import java.util.Date;import er;import erDao;import com.util.ConnectionManager;public class UserDaoImpl extends BaseDao implements UserDao {private Connection conn = null; // 保存数据库连接private PreparedStatement pstmt = null; // 用于执行SQL语句private ResultSet rs = null; // 用户保存查询结果集/*** 增加用户* @param user* @return 增加条数*/public int addUser(User user) {String sql = "insert into TBL_USER(uname,upass,gender,head,regTime) values(?,?,"+user.getGender()+",?,?)";String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); // 取得日期时间String[] parm = { user.getUName(), user.getUPass(),user.getHead(),time };return this.executeSQL(sql, parm); // 执行sql,并返回影响行数}/*** 修改用户密码* @param user* @return 更新条数*/public int updateUser(User user){String sql = "update TBL_USER set upass=? where uname=?";String[] parm = { user.getUPass(),user.getUName() };return this.executeSQL(sql, parm); // 执行sql,并返回影响行数}/*** 根据用户名查找用户* @param uName* @return 根据用户名查询的用户对象*/public User findUser(String uName) {String sql = "select * from TBL_USER where uName=?";User user = null;try {conn = ConnectionManager.getConnection(); // 取得数据库连接pstmt = conn.prepareStatement(sql); // 取得PreparedStatement对象pstmt.setString(1, uName); // 设置参数rs = pstmt.executeQuery(); // 执行SQL取得结果集while( rs.next() ) {user = new User();user.setUId( rs.getInt("uId") );user.setUName( rs.getString("uName") );user.setUPass( rs.getString("uPass") );user.setGender(rs.getInt("gender"));user.setHead( rs.getString("head") );user.setRegTime( rs.getString("regTime") );}} catch (Exception e) {e.printStackTrace(); // 处理异常} finally {ConnectionManager.closeStatement(pstmt);ConnectionManager.closeConnection(conn);}return user;}/*** 根据用户id查找用户* @param uId* @return 根据uid查询的用户对象*/public User findUser(int uId) {String sql = "select * from TBL_USER where uId=?";User user = null;try {conn = ConnectionManager.getConnection(); //取得数据库连接pstmt = conn.prepareStatement(sql); //取得PreparedStatement对象pstmt.setInt(1, uId); //设置参数rs = pstmt.executeQuery(); //执行SQL取得结果集while( rs.next() ) {user = new User();user.setUId( rs.getInt("uId") );user.setUName( rs.getString("uName") );user.setUPass( rs.getString("uPass") );user.setGender(rs.getInt("gender"));user.setHead( rs.getString("head") );user.setRegTime( rs.getString("regTime") );}} catch (Exception e) {e.printStackTrace(); // 处理异常} finally {ConnectionManager.closeStatement(pstmt);ConnectionManager.closeConnection(conn);}return user;}}四.JSP页面及Servlet介绍本系统基于功能都是JSP的形式实现的.某些处理功能以<%.........%>来实现。

相关主题