BBS论坛系统设计SQL+Java实习报告Word文件下载.docx
《BBS论坛系统设计SQL+Java实习报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《BBS论坛系统设计SQL+Java实习报告Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
BBS系统分为前台和后台两个模块。
系统的功能模块图如图3-1所示。
前台模块的使用对象包括了所有用户(管理员、用户、游客),提供的功能包括注册帐号、用户登录、用户注销、浏览文章、发表新主题、回复主题、修改个人信息。
如图3-2所示。
后台模块的使用对象为管理人员(版主、管理员、超级管理员),提供的功能包括管理用户、管理版块、管理主题、管理用户组、功能权限管理、版块权限管理。
后台功能模块如图3-3所示。
(2)数据库与程序设计,根据需要利用相关开发技术使用数据库完成模块的功能设计。
本系统采用的工具有JDK1.5、Tomcat 6.0、MyEclipse8.5、SQLServer2005,使用的技术有Java、JSP、JavaScript、JDBC等。
(1)Java语言概述
Java编程语言是一种通用、并发、基于类且面向对象的语言。
Java编程语言与C和C++相关,但是在组织方式上有差别,Java具有C和C++遗漏的许多优点,同时兼有其他语言包括的一些思想。
它旨在成为一种生产语言,而不是一种研究语言,并且正是如此[7]。
(2)JSP技术概述
JSP (JavaServerPages)是由Sun公司倡导,许多公司参与,共同建立人一种动态网页技术标准,JSP技术是在Servlet技术基础上发展起来的。
它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。
(3)JavaScript技术概述
JavaScript是一种基于对象(Object)和事件驱动(EventDriver)并具有安全性能的脚本语言,它所能提供的功能非常强大。
JavaScript是一种简洁的面向对象的描述语言,是专门用来开发Internet客户端和服务器端的应用程序,它可以被轻易的嵌入到HTML文件中,使用JavaScript浏览器可以回应使用者的需求事件而不用通过网络来回传资料,这样,使用者的资料就可以直接被客户端应用程序所处理,它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择[9]
(3)页面(界面)设计与编程。
系统采用JDBC架构,数据库采用SQLServer,其连接数据库的关键代码:
1.static{
ﻩtry{
ﻩﻩClass.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
);
ﻩ} catch(ClassNotFoundException e) {
ﻩﻩe.printStackTrace();
ﻩ}
ﻩ}
.2.publicResultSetquery(String sql,String[]args){
ﻩtry{
ﻩconn = DriverManager.getConnection("
jdbc:
sqlserver:
//localhost:
1433;
database=bbs"
"
sa"
,"
123456"
ﻩﻩpstmt= conn.prepareStatement(sql);
ﻩif(null !
=args)
ﻩﻩﻩfor(inti=0;
i<
args.length;
i++)
ﻩﻩﻩpstmt.setString(i+1,args[i]);
ﻩreturnpstmt.executeQuery();
ﻩ}catch(SQLExceptione){
ﻩﻩe.printStackTrace();
ﻩﻩreturnnull;
ﻩ}
3.publicvoidclosed(ResultSetrs){
ﻩif(rs!
=null){
ﻩﻩtry{
ﻩﻩrs.close();
ﻩﻩ}catch(SQLExceptione){
ﻩﻩe.printStackTrace();
ﻩ}
}
if(pstmt !
=null){
try {
ﻩpstmt.close();
ﻩ}catch(SQLExceptione){
ﻩﻩﻩe.printStackTrace();
ﻩﻩ}
ﻩif(conn!
=null){
ﻩﻩtry {
ﻩﻩﻩif(!
conn.isClosed())
ﻩﻩconn.close();
ﻩ} catch(SQLExceptione){
ﻩﻩe.printStackTrace();
ﻩﻩﻩ}
ﻩ}
}
(1)用户注册:
新用户在enrol.jsp页面中输入用户名,密码,密码提示问题、提示问题答案,点击提交按钮,数据提交到enrolinfo.jsp中进行处理,在enrolinfo.jsp中,如果用户名已经有人使用则返回注册页面,否则提示用户注册成功,并跳转到登录后的页面index_logined.jsp。
enrolinfo.jsp的代码如下:
<
%@pagelanguage="
java"import="java.util.*"
pageEncoding="
GBK"
%>
%@pageimport="
entity.User"
%@pageimport="
dao.UserDAO"
%>
%@pageimport="
dao.impl.UserDAOImpl"%>
<%
ﻩ//post中文乱码处理
request.setCharacterEncoding("GBK");
User user=new User();
StringUId=request.getParameter("
hui");
ﻩStringUPass=request.getParameter("
password");
ﻩString UNickName= request.getParameter("
Nike"
ﻩStringHead = request.getParameter("
SelectAvatar");
String Gender=request.getParameter("
xing");
Stringuname=request.getParameter("
zname");
StringUCard = request.getParameter("
card"
ﻩString question=request.getParameter("
select");
StringUKey=request.getParameter("da"
user.setUId(UId);
user.setUPass(UPass);
ﻩuser.setUNickName(UNickName);
user.setHead(Head);
ﻩuser.setGender(Gender);
user.setUName(uname);
ﻩuser.setUCard(UCard);
user.setQuestion(question);
user.setUKey(UKey);
UserDAOdao=newUserDAOImpl();
booleanbl=dao.addUser(user);
ﻩif(bl)
ﻩﻩ{
response.sendRedirect("
/QNbbs/HTML/success.jsp"
ﻩ}else
ﻩresponse.sendRedirect("/QNbbs/HTML/shibai.jsp");
%>
(2)用户登录:
用户在有帐号的前提下,可以在登录页面login.jsp或主页index.jsp中输入用户名和密码点击登录,系统将用户名和密码提交到doLogin.jsp中的处理,将用户提交的用户名和密码再转交给后台的Dao进行查询,如果有这样的一条记录存在则登录成功,将用户的个人信息保存在浏览器端的Session中,否则返回登录失败页面,并提示用户名或密码错误。
doLogin.jsp的代码如下:
<%@pagelanguage="java"
pageEncoding="
GBK"
<%@pageimport="
entity.User"
<%@pageimport="dao.UserDAO"
%@pageimport="
dao.impl.UserDAOImpl"%>
%
ﻩrequest.setCharacterEncoding("
String name = request.getParameter("
name");
Stringpassword=request.getParameter("password");
UserDAOdao = newUserDAOImpl();
boolean bl =dao.qeury(name,password);
if(bl){
Useruser=dao.sendname(name,password);
Stringuname=user.getUNickName();
ﻩintuid=user.getID();
ﻩﻩdao.updateUser(user);
response.sendRedirect("
../HTML/index_logined.jsp"
ﻩsession.setAttribute("
name",uname);
ﻩsession.setAttribute("
uid",uid+"
"
ﻩﻩsession.setAttribute("uname"
user.getUNickName());
ﻩ}else{
ﻩresponse.sendRedirect("
../HTML/login_shibai.jsp"
);
%>
(3)用户注销:
已登录用户在退出网站时注销登录状态,系统将请求交给login_off.jsp处理,在login_off.jsp中修改用户最后离线时间,将修改保存到数据库中,并将浏览器端的Session的user属性移除,系统返回主页。
用户同时失去登录用户的权限,以游客身份访问网站,只能浏览主题,不能发表主题,也不能发表回复。
login_off.jsp的代码如下:
<
%@pagelanguage="
java"
import="
java.util.*"
pageEncoding="GBK"
<%@pageimport="dao.impl.UserDAOImpl"
%>
%@page import="
entity.User"
ﻩString id=session.getAttribute("
uid"
).toString