JSP课程设计报告.docx
- 文档编号:23042321
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:19
- 大小:215.57KB
JSP课程设计报告.docx
《JSP课程设计报告.docx》由会员分享,可在线阅读,更多相关《JSP课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
JSP课程设计报告
设计题目:
JSP论坛
所在院系:
所在专业:
学生学号:
学生姓名:
指导老师:
完成时间:
2010-6-9
一、实验目的:
1.培养运用JSP语句制作网页的能力;
2.活用所学的JSP知识制作简单的网页论坛;
3.发挥各人的想象能力和分析能力,拓展思维空间;
二、需求分析:
安装JDK,设置环境变量如下:
变量名:
Java_home
变量值:
D:
\jdk1.5
变量名:
Classpath
变量值:
D:
\jdk1.5\jre\lib\rt.jar;.;
变量名:
Path
变量值:
D:
\jak1.5\bin;%path%
Jsp论坛简介:
论坛是用户交流,传递信息的平台,在信息社会的今天有着重要的作用。
本BBS站点旨在构建此类平台,实现不同模块的功能设计。
用户注册后登录,进入不同功能站点,以完成相应需求。
本站点功能模块大致分为:
社区论坛、留言板、聊天室和电子邮件等。
本系统是用JSP、JavaBean、Servlets、Sqlserver、等WEB开发技术或网络工具完成一个的基本的论坛程序。
三、概要设计:
本实验目的在于简单的JSP论坛,实现各模块功能。
系统结构图如下:
四、详细设计:
1、数据库设计:
经过对论坛的需求分析,设计出该社区所需的数据库,名称为“bbsdata”。
在数据库中共包括五个数据表
公告表:
公告id自动编号
公告标题备注
公告内容备注
公告时间日期/时间
论坛栏目表:
论坛id自动编号
论坛名称文本
创建时间日期/时间
版主姓名文本
版主密码文本
贴子数量数字
主题数量数字
最后发表人文本
最后发表时间日期/时间
帖子表;
贴子id自动编号
版块id数字
回复id数字
贴子名称文本
贴子内容备注
发表日期日期/时间
贴子作者文本
点击次数数字
点击次数数字
贴子长度文本
显示签名数字
贴子图片文本
IP地址文本
回复用户文本
回复时间日期/时间
用户表:
用户id自动编号
用户名文本
用户密码文本
用户性别文本
用户邮箱文本
手机号码文本
居住地址文本
Oicq文本
出生日期文本
用户图像文本
签名
发贴次数数字
访问次数数字
用户等级文本
注册日期日期/时间
是否在线文本
认证身份文本
2、整体框架设计:
论坛的首页效果图:
3、核心代码:
在论坛的开发中,对于一些公用的模块,我们采用组建的方式实现。
以下是关于数据连接的JavaBean。
packagefrola;
importjava.io.*;
importjava.sql.*;
publicclassjdbc
{
publicjdbc()
{
}
Connectionconn=null;
publicjava.sql.ConnectiongetConn()//数据库连接函数,返回一个数据库连接对象
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312";
conn=DriverManager.getConnection("jdbc:
odbc:
bbsdata","","");
}
catch(Exceptione)
{
e.printStackTrace();
System.out.println("数据库连接失败!
");
}
returnthis.conn;
}
publicStringgetTime()//获取当前系统时间,返回当前时间字符串
{
Stringdatestr="";
try
{
java.text.DateFormatdf=newjava.text.SimpleDateFormat("yyyy-M-dHH:
ss");
java.util.Datedate=newjava.util.Date();
datestr=df.format(newjava.util.Date());
}
catch(Exceptionex)
{
}
returndatestr;
}
}
4、用户注册:
要想成为论坛的会员,必须通过在论坛注册,只有注册成论坛的会员,才有权利发帖子并修改删除自己的帖子,游客身份只允许浏览别人帖子。
截图界面如下:
当用户填写完个人信息之后,点击立即注册,系统即会把用户信息写入数据库,并返回提示页面,核心注册代码如下:
//例程1-6
<%@pagecontentType="text/html;harset=gb2312";
language="java"import="java.sql.*,java.util.*"%>
useBeanid="bbsdata"scope="page"class="bbsdata.jdbc"/> <%! StringUser_Name,User_Password,User_Password1,sql,User_Sex,User_Email,User_Address,User_Mobile,User_Oicq,User_Year,User_Month,User_Day,User_Birthday,User_Icon,User_Sign; %> <% User_Name=request.getParameter("name"); User_Name=yy.ex_chinese(User_Name); User_Password=request.getParameter("password"); User_Password=yy.ex_chinese(User_Password); User_Password1=request.getParameter("password2"); User_Password1=yy.ex_chinese(User_Password1); User_Sex=request.getParameter("sex"); User_Sex=yy.ex_chinese(User_Sex); User_Email=request.getParameter("email"); User_Address=request.getParameter("address"); User_Address=yy.ex_chinese(User_Address); User_Mobile=request.getParameter("mobile"); User_Oicq=request.getParameter("oicq"); User_Year=request.getParameter("year"); User_Month=request.getParameter("month"); User_Day=request.getParameter("day"); User_Icon=request.getParameter("icon"); User_Sign=request.getParameter("sign"); User_Sign=yy.ex_chinese(User_Sign); if(User_Year.equals("")) { if((User_Month.equals(""))&&(User_Day.equals(""))) User_Birthday="保密"; else User_Birthday=User_Month+"月"+User_Day+"日"; }else { if((User_Month.equals(""))&&(User_Day.equals(""))) User_Birthday="保密"; else User_Birthday=User_Year+"年"+User_Month+"月"+User_Day+"日"; } User_Birthday=yy.ex_chinese(User_Birthday); if(User_Email.equals("")) { response.sendRedirect("err.jsp? id=11"); return; }else { } if(! User_Password.equals(User_Password1)) { response.sendRedirect("err.jsp? id=9"); return; } if((User_Password.length()<5)||(User_Password.length()>12)) { response.sendRedirect("err.jsp? id=10"); return; } if((User_Name.indexOf("'")>0)||(User_Name.indexOf("")>0)||(User_Name.indexOf("@")>0)||(User_Name.indexOf("=")>0)||(User_Name.indexOf("%")>0)) { response.sendRedirect("err.jsp? id=12"); return; } if((User_Email.indexOf("@")<0)||(User_Email.indexOf(".")<0)) { response.sendRedirect("err.jsp? id=13"); return; } Connectioncon=yy.getConn(); Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSetrs=null; sql="select*from用户表where用户名='"+User_Name+"'"; rs=stmt.executeQuery(sql); rs.last(); //out.println(sql); if(rs.getRow()>0) { response.sendRedirect("err.jsp? id=3"); }else { sql="insertinto用户表(用户名,用户密码,用户性别,用户邮箱,居住地址,手机号码,Oicq,出生日期,用户图像,签名,发贴次数,访问次数,用户等级,注册日期,是否在线,认证身份)"; sql=sql+"values('"+User_Name+"','"+User_Password+"','"+User_Sex+"','"+User_Email+"','"+User_Address+"','"+User_Mobile+"','"+User_Oicq+"','"+User_Birthday+"','"+User_Icon+"','"+User_Sign+"',0,1,'新手上路','"+yy.getTime()+"','在线','1')"; stmt.executeUpdate(sql); session.putValue("UserName",User_Name); session.putValue("UserLevel","新手上路"); out.println(" } %> includepage="inc/online.jsp"flush="true"/> 5、用户管理: 实现对论坛用户的添加修改删除 功能是实现的核心代码如下: <%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage="err.jsp"%> <% if((session.getValue("UserName")==null)||(session.getValue("UserClass")==null)||(! session.getValue("UserClass").equals("系统管理员"))) { response.sendRedirect("err.jsp? id=14"); return; } %> functionPopup(url,window_name,window_width,window_height) {settings= "toolbar=no,location=no,directories=no,"+ "status=no,menubar=no,scrollbars=yes,"+ "resizable=yes,width="+window_width+",height="+window_height; NewWindow=window.open(url,window_name,settings);} functionicon(theicon){ document.input.message.value+=""+theicon; document.input.message.focus(); }
useBeanid="bbsdata"scope="page"class="bbsdata.jdbc"/> <%! StringUser_Name,User_Id,sql,Not_Title,Not_Content,Submit_Button;%> <% Submit_Button=request.getParameter("Submit"); User_Name=request.getParameter("username"); intPageSize=10; intRecordCount=0; intPageCount=0; intShowPage=1; Connectioncon=bbsdata.getConn(); Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSetrs=null; sql="Select*from用户表orderby用户iddesc"; if(Submit_Button! =null) { if(Submit_Button.equals("删除该用户的所有贴子")) { sql="deletefrom贴子where贴子作者='"+User_Name+"'"; stmt.executeUpdate(sql); sql="Select*from用户表orderby用户iddesc"; } elseif(Submit_Button.equals("搜索")) { sql="Select*from用户表where用户名='"+User_Name+"'"; } } rs=stmt.executeQuery(sql); rs.last(); RecordCount=rs.getRow(); PageCount=(RecordCount%PageSize==0)? (RecordCount/PageSize): (RecordCount/PageSize+1); StringPage=request.getParameter("page"); if(Page! =null) { ShowPage=Integer.parseInt(Page); if(ShowPage>PageCount) ShowPage=PageCount; elseif(ShowPage<0) ShowPage=1; }else ShowPage=1; if(RecordCount>0) { rs.absolute((ShowPage-1)*PageSize+1); for(inti=1;i { User_Id=rs.getString("用户id"); User_Name=rs.getString("用户名"); %> modifyid=<%=User_Id%>'><%=User_Name%> modifyid=<%=User_Id%>'>修改 deleteid=<%=User_Id%>&username=<%=User_Name%>'onClick="{if(confirm('确定删除该用户,该用户所发表的所有贴子也同时被删除? ')){returntrue;}returnfalse;}">删除 <% if(! rs.next()) break; } } %> 现在是第 <% for(inti=1;i<=PageCount;i++) { out.println(" } %> 五、实验总结: 通过这次课程设计,我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。 通过本次基本JSP论坛程序的设计和参考网上资料,自己了解了论坛的大致结构,学会了数据库的设计以及联系了JSP语言对数据库的大致操作,积累了经验。 JSP是门很重要的程序开发语言,自己往后还需努力学习。 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。 copyright@ 2008-2022 冰点文档网站版权所有 经营许可证编号:鄂ICP备2022015515号-1