为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于jsp的简单论坛制作(报告加源代码)

2017-11-14 44页 doc 266KB 125阅读

用户头像

is_153723

暂无简介

举报
基于jsp的简单论坛制作(报告加源代码)基于jsp的简单论坛制作(报告加源代码) 课程名称 Web开发技术课程实习 课程编号 j1620108 学号 学生姓名 所在专业 计算机科学与技术 所在班级 计科1104 指导教师 成绩 教师签字 课程实习时间:2013年6月10日 至 6月14日 评语: 目录 摘 要 ...........................................................................................................................
基于jsp的简单论坛制作(报告加源代码)
基于jsp的简单论坛制作(报告加源代码) 课程名称 Web开发技术课程实习 课程编号 j1620108 学号 学生姓名 所在专业 计算机科学与技术 所在班级 计科1104 指导教师 成绩 教师签字 课程实习时间:2013年6月10日 至 6月14日 评语: 摘 要 ......................................................................................................................................0 1、应用需求分析 ........................................................................................................................1 1.1、用户登录和注册功能 ....................................................................................................1 1.2、注册功能......................................................................................................................2 1.3、用户登录成功后就进入了论坛的主界面,用户可以新选择相应的功能...........................3 1.4、用户发表帖子...............................................................................................................3 1.4.1、帖子的浏览.........................................................................................................4 1.4.2、查看特定帖的详细信息 .......................................................................................5 1.5、用户帖子的删除功能。.................................................................................................5 1.5.1、帖子的删除.........................................................................................................5 1.6、管理员对帖子的查看/发表/删除功能 ............................................................................6 1.6.1、管理员查看或发表帖子 .......................................................................................6 1.6.2、管理员删除帖子..................................................................................................6 2、系统总体设计 ........................................................................................................................6 2.1、系统结构设计...............................................................................................................6 2.1.1、各个页面的功能及示意图....................................................................................7 2.1.2、各个页面之间的调用关系....................................................................................7 2.2、数据库设计 ..................................................................................................................8 2.2.1、用户信息表Student ............................................................................................8 2.2.2、存储帖子所用的信息表DISCUSS ..........................................................................9 2.2.3、存储回复帖子的信息表REPLY ..............................................................................9 3、系统详细设计 ...................................................................................................................... 10 3.1、建立数据库及数据库表............................................................................................... 10 3.2、用户登录功能的实现 .................................................................................................. 11 3.2.1、登陆界面的制作: ............................................................................................ 11 3.2.2、登陆功能的实现................................................................................................ 12 3.3、浏览主题帖子功能的实现 ........................................................................................... 13 3.3.1、翻页功能的实现................................................................................................ 13 3.4、主题帖子详细内容页面的制作 .................................................................................... 16 3.5、在帖子详细内容页面里实现回复功能.......................................................................... 17 3.6、用户发表新帖子页面的制作........................................................................................ 20 3.6.1、NewTitle.jsp页面发表新的主题文章 .................................................................. 20 3.6.2、SaveNewTitle.jsp页面用于保存由NewTitle.jsp页面传来的数据信息 ................... 21 3.7、新用户注册功能的实现............................................................................................... 22 3.8、用户取回密码功能的实现 ........................................................................................... 24 3.9、用户和管理员删除帖子功能的实现 ............................................................................. 26 课程实习心得............................................................................................................................ 28 参考文献: ............................................................................................................................... 30 摘 要 当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。BS的英文全称是Bulletin Board System,翻译为中文就是“电子公告板”。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。 BBS论坛是一种比较好的交流平台,他能方便人们进行即时在线交流,发表各种信息,实现网络资源的共享。而且,也能促使人们敞开心扉去学习知识、追求进步,以至于能更好的利用网络资源。 随着计算机软件的迅速发展,BBS的界面效果越来越美观,功能、作用和范围也得到了迅速扩大。与此同时,制作BBS论坛的方法和所用的软件种类也越来越多了。而在这里,我将采用基于JSP网页技术的方法进行简单的BBS论坛制作。我所用的开发软件是Eclipse,它是一款可以做基础Java项目开发的工具;JDK1.6,当前进行Java开发的最新版本;数据库是MySQL,它是一款当前比较流行的进行中小量数据开发的中小型数据库;服务器是Tomcat7.0,它也是一款当前比较流行的软件,主要用于网络服务器的开发。 本文主要讲述利用Java Web的相关技术来制作一个简单论坛。通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息;找回密码功能,当用户忘记密码时可以通过此功能找回密码,找回密码时需要用户记得注册时填写的个人信息。除此之外,还有浏览帖子、发表帖子、回复贴子以及删除帖子等等功能。制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSp。 关键词:BBS 论坛; JSP 技术; 登陆;注册; 找回密码;浏览贴子; 发表帖子; 回复贴子; 删除帖子 1 广东海洋大学本科生课程 1、应用需求分析 作为一个BBS论坛,它应该具有BBS所有的一些基本功能,包括:用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。接下来,我将详细阐述一下这些功能。 1.1、用户登录和注册功能 进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。 登录页面: 1.2、注册功能 用户首次进入系统时候,需要填写注册信息进行用户注册。 3 广东海洋大学本科生课程实习报告 1.3、用户登录成功后就进入了论坛的主界面,用户可以新选择相应的功能 1.4、用户发表帖子 当用户登录成功后便进入该页面,在该页面发表的主题帖子, 、 1.4.1、帖子的浏览 在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:主题、作者和时间,这里运用了分页功能。 5 广东海洋大学本科生课程实习报告 1.4.2、查看特定帖的详细信息 如上所述,单击主题便进入该帖的详细内容页面。里面主要包含了该帖的详细内容和他人对此帖的回复,页面的最低处是用户的回复框架,用户在框架内直接输入要回复的内容即可。 1.5、用户帖子的删除功能。 1.5.1、帖子的删除 在主题帖子页面中,每幅帖子的最左面都有一个删除按钮点,击此按钮便可删除你所发表的帖子。 如果是非管理员即会提示非管理员不能删除帖子 1.6、管理员对帖子的查看/发表/删除功能 1.6.1、管理员查看或发表帖子 管理员查看或发表帖子与普通用户的一样。管理员可以对帖子和用户进行管理。 1.6.2、管理员删除帖子 管理员删除帖子与普通用户的区别在于,他可以删除任何人发表的贴子,另外他还有一项特权,就是可以删除任何人回复的垃圾帖子。只要以admin身份登录的用户都可以点击帖子前面的就可以删除帖子 2、系统总体设计 2.1、系统结构设计 本BBS论坛系统共分为三大功能模块: (1) 登陆管理功能系统; (2) 注册功能系统; (3) 找回密码功能系统。 登陆管理功能系统,又包括四个子模块:单纯的用户登录模块,用户发表帖子模块,用户回复他人帖子模块和用户删除自己所发表的帖子模块。 7 广东海洋大学本科生课程实习报告 2.1.1、各个页面的功能及示意图 各个模块 页面名称 页面功能 开始登陆的界面 Login.html 系统启动时的首页 Enter.jsp 用于判断用户名和密码是否正确 MainForm.jsp 登陆成功后转入该页面 Discuss.jsp 浏览主题帖子的页面,在这可以查看各类帖子 Person.jsp 显示个人信息的页面 登录管理 NewTitle.jsp 发表新的主题帖子的页面 功能系统 SaveNewTitle.jsp 将新发表的帖子存入数据库表Discuss中 Detail.jsp 用于显示帖子的内容及回复该帖的内容 SaveRevert.jsp 将回复内容存入数据库表Reply中 Delete.jsp 用于删除帖子 Register.jsp 该界面用于新用户注册 注册功能系统 SaveRegister.jsp 保存新用户注册信息到数据库表Student中 找回密码功能系GetPassword.jsp 用于用户找回密码 统 2.1.2、各个页面之间的调用关系 各个页面之间的调用关系如下图所示: 2.2、数据库设计 2.2.1、用户信息表Student 表名:Student 用户信息表Student包括八个字段:即,ID(用户的标识符)、USERNAME(用户名)、PASSWORD(用户密码)、SEX(性别)、AGE(年龄)、BIRTH(生日)、TELEPHONE(联系电话)、EMAIL(电子邮箱)等。 STUDENT表的属性如下图所示: STUDENT表的内容如下图所示: 9 广东海洋大学本科生课程实习报告 2.2.2、存储帖子所用的信息表DISCUSS 表名:DISCUSS 信息表DISCUSS包括七个字段:即,NAME(发帖人的昵称)、EMAIL(电子邮箱)、SUBJECT(帖子的主题)、CONTENT(帖子的内容)、TIME(发帖的时间)、USERNAME(用户名)、ID(帖子的标识)等。 表的属性: 表的内容: 2.2.3、 存储回复帖子的信息表REPLY 表名:REPLY 信息表REPLY包括五个字段:即,NAME(回帖人的昵称)、CONTENT(回帖的内容)、TIME(回帖的时间)、REPLY(所回复的主贴的标识符)、ID(回复贴的标识符)等。 表的属性: 表的内容: 3、系统详细设计 3.1、建立数据库及数据库表 建立一个数据库Test和三个数据库表(STUDENT、DISCUSS和REPLY)。 首先在Eclipse软件里配置MySQL5.0,配置完成后在Eclipse界面里建立名为 “Test”的数据库,然后再建立三个数据库表(STUDENT、DISCUSS和REPLY)。 创建表student: stmt.executeUpdate("create table student(id int not null auto_increment," + "username varchar(20) unique," + "password varchar(20) not null," + "sex varchar(8) not null,"+ "age varchar(4) ,"+ "birth varchar(20) not null,"+ "telephone varchar(12),"+ "email varchar(40) not null," + "primary key (id))"); 创建表discuss: stmt.executeUpdate("create table discuss(name char(20) not null,"+ "email char(40) not null,"+ "subject char(60) not null,"+ "content text not null,"+ "time char(40),"+ "username char(20),"+ "id int not null auto_increment,primary key (id))"); 11 广东海洋大学本科生课程实习报告 创建表reply: stmt.executeUpdate("create table reply(name char(20) not null,"+ "content text not null,"+ "time char(40),reply int,"+ "id int not null auto_increment,"+ "primary key (id))"); 3.2、用户登录功能的实现 3.2.1、登陆界面的制作: >密码:

用户名:

3.2.2、登陆功能的实现 通过Login.html界面传递参数username 和 password 给Enter.jsp界面,然后 查询数据库,判断用户名和密码是否正确。若判断正确则为用户建立一个session, 并进入了用户主界面。 <%@ page contentType="text/html; charset=GB2312" %> <%@ page import="java.sql.*" %> <% try{out.print("系统错误1"); Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ out.print("系统错误1");}//数据库的驱 Connection con; ResultSet rs; String sql; String username=request.getParameter("username"); String password=request.getParameter("password"); try{ String database="test"; String uri="jdbc:mysql://localhost/"+database; con=DriverManager.getConnection(uri,"root","root");//连接到数据库 PreparedStatement pstmt = null;// 数据库表达式 sql = "select * from Student where username = ? and password= ?";// SQL语 句 pstmt = con.prepareStatement(sql); pstmt.setString(1, username);//1代表上面的第一个问号。 pstmt.setString(2, password); 13 广东海洋大学本科生课程实习报告 rs = pstmt.executeQuery(); if(rs.next()) { request.getSession(true);//创建一个session session.setAttribute("username",username); session.setAttribute("password",password); session.setAttribute("userIP",request.getRemoteAddr());//获取用户的ip地址 } session.setAttribute("enter","true") ; response.sendRedirect("MainForm.jsp");//登录成功 }else response.sendRedirect("login.html");//登录失败 返回~ } catch(Exception e){ out.print("系统错误"); }%> 3.3、浏览主题帖子功能的实现 3.3.1、翻页功能的实现 功能的实现:首先确定每页所能容纳帖子的最大数目,在这里我设定MaxNum=5;然后连接数据库查询帖子的总数,从而判断总的页数,即lastPage,接着根据请求的页码pageNO判断出该页码是否合法,若pageNO<1则改正为pageNO=1,若pageNO>lastPage,即所求的页码超出了最大页数,则改正pageNO=lastPage,然后确定要显示的第一个帖子的标识码firstNum和最后一个帖子的标识码lastNum,最后连接数据库将标识码在firstNum和lastNum之间的帖子的信息查询出来,并在此页面显示帖子的主题、作者等粗略的信息,点击主题便能进入帖子的详细内容。 程序为: <%@page import="javax.xml.soap.Detail"%> <%@ page contentType="text/html; charset=GB2312" %> <%@ page import="java.sql.*" %> <% Statement sql; Connection con; ResultSet rs; int MaxNum = 5;//每页容纳的主题论文的最大数目 int count = 0, firstPage = 1, lastPage=1, firstNum=1, lastNum=1, prePage=1, nextPage=1, pageNO=1; if (request.getParameter("pageNO") == null||request.getParameter("pageNO").equals("")) pageNO = 1; else pageNO = Integer.parseInt(request.getParameter("pageNO")); //firstPage表示首页,lastPage表示末页,pageNO表示第几页 //firstNum表示该页的起始贴的ID,lastNum表示该页的末帖的ID //prePage表示前一页,nextPage表示后一页 try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ out.print(e); }; try{ String database="test"; String uri="jdbc:mysql://localhost/"+database; con = DriverManager.getConnection(uri,"root","root"); //翻页功能的实现 String condition="select * from discuss"; sql=con.createStatement(); rs=sql.executeQuery(condition); while(rs.next()) { count++;//计算数据库里一共有多少帖子; } /* if (request.getParameter("pageNO") == null) pageNO = 0; else pageNO = Integer.parseInt(request.getParameter("pageNO")); */ lastPage=(int)Math.ceil((double)count/MaxNum); //向上取整 if(pageNO<=0) pageNO=1; 15 广东海洋大学本科生课程实习报告 if(pageNO>lastPage) pageNO=lastPage; firstNum=(pageNO-1)*MaxNum+1; lastNum=pageNO*MaxNum; if(pageNO<=1) prePage=1; else prePage=pageNO-1; if(pageNO>=lastPage) nextPage=pageNO; else nextPage=pageNO+1; ResultSet rs2; String condition2 = "select * from discuss where id between " + firstNum + " and " + lastNum; rs2=sql.executeQuery(condition2); String name,subject,time; int replyid,id; while(rs2.next()) { name=rs2.getString(1); subject=rs2.getString(3); time=rs2.getString(5); id=rs2.getInt(7); out.print(""); out.print(""); out.println(""); out.print("
" + subject + "" + name + "" + time + "
"); } out.print(""); } catch(Exception e) { out.println("捕捉的错误2");} %>
发表新帖子
目前页数: <%=pageNO%> 总页数: <%=lastPage%> >【第一页】 >【上一页】 >【下一页】 >【最后一页】 输入页次:
3.4、主题帖子详细内容页面的制作 通过discuss.jsp页面传递参数ID,然后进行数据库查询获得帖子的详细信息,并显示的页面上。 <% Statement sql; Connection con; ResultSet rs; ResultSet rs2; int id=Integer.parseInt(request.getParameter("id")); try{ Class.forName("com.mysql.jdbc.Driver"); } 17 广东海洋大学本科生课程实习报告 catch(Exception e){ out.print("加载驱动错误"); }; try{ int replyid=0; String database="test"; String uri="jdbc:mysql://localhost/"+database; con = DriverManager.getConnection(uri,"root","root"); String condition="select * from discuss where id = '"+ id +"'"; /* StringBuffer result=null; */ sql=con.createStatement(); rs=sql.executeQuery(condition); while(rs.next()) { out.println("这是帖子的详细内容:\n"); out.print("
"); /* out.print(""); out.print(""); */ out.print(rs.getString(4)); /* out.print(""); out.print("
"); */ /* out.print(result); */ } out.print(""); out.print("
"); out.print(""); 3.5、在帖子详细内容页面里实现回复功能 在Detail.jsp 页面里实现回复功能,让用户可以在同一页面实现浏览贴子、回复帖子和浏览别人回复的帖子的功能: Detail.jsp页面中的代码: 此部分代码是显示该帖子的内容,并给用户提供了一个回帖框架,在框架内直接输入内容就可以进行回复 //回复帖子的 String condition2="select * from reply where reply = '"+ id +"'"; rs2=sql.executeQuery(condition2); while(rs2.next()) { out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.print("
用户" + rs2.getString(1) + "的回复内容是:" + rs2.getString(2) + "
回复的时间是:" + rs2.getString(3) + "
"); int reply=Integer.parseInt(rs2.getString(5));//提取回复贴的id; out.print("删除回复请按-->"); } } catch(Exception e){ out.print("尼玛"); } %>
method="post" onsubmit="return checkForm(this);">
输入你要回复的内容
SaveRevert.jsp页面中的代码: 此页面的功能保存由Detail.jsp页面传来的回帖信息,保存次信息到Reply数据库表中: <%@ page contentType="text/html; charset=GB2312" %> <%@ page import="java.util.Calendar"%> <%@ page import="java.util.GregorianCalendar"%> <%@ page import="java.sql.*" %> <% 19 广东海洋大学本科生课程实习报告 Statement sql; Connection con; ResultSet rs; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ out.print(e); }; try{ String database="test"; String uri="jdbc:mysql://localhost/"+database; con = DriverManager.getConnection(uri,"root","root"); String reply = request.getParameter("id"); String name = (session.getAttribute("username")).toString(); String content = request.getParameter("content"); int year, month, day, hour, minute, second; String time; GregorianCalendar calendar; calendar = new GregorianCalendar(); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH) + 1; day = calendar.get(Calendar.DAY_OF_MONTH); hour = calendar.get(Calendar.HOUR_OF_DAY); minute = calendar.get(Calendar.MINUTE); second = calendar.get(Calendar.SECOND); time = year + "年" + month + "月" + day + "日" + hour + ":" + minute + ":" + second; byte[] bb=content.getBytes("iso-8859-1"); content=new String(bb); String updateCondition = "insert into reply ( name, content, time, reply )values('"+ name+ "','"+ content+ "','"+ time+ "','" + reply+"')"; sql=con.createStatement(); out.print(updateCondition); sql.executeUpdate(updateCondition); out.print("内部失败"); response.sendRedirect("detail.jsp?id=" + reply); } catch (Exception e){ out.print("更新回复失败"); } %> 3.6、用户发表新帖子页面的制作 3.6.1、NewTitle.jsp页面发表新的主题文章 此界面提供用户输入功能,输入完成后“发表心得主题”按钮便可提交数据给SaveNewTitle.jsp页面: < <%@ page contentType="text/html; charset=GB2312"%>
姓名
E-mail
主题
内容

返回主题页 21 广东海洋大学本科生课程实习报告 3.6.2、SaveNewTitle.jsp页面用于保存由NewTitle.jsp页面传来的数据信息 首先将传递来的数据进行转换,然后将其插入数据库Discuss中: <%@ page import="java.util.Calendar"%> <%@ page import="java.util.GregorianCalendar"%> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <%@ page contentType="text/html; charset=GB2312" %> <% Statement sql; Connection con; ResultSet rs; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ out.print(e); }; try{ String database="test"; String uri="jdbc:mysql://localhost/"+database; con = DriverManager.getConnection(uri,"root","root"); String name=request.getParameter("name"); String email=request.getParameter("email"); String subject = request.getParameter("subject"); String content = request.getParameter("content"); int year,month,day,hour,minute,second; String time; GregorianCalendar calendar; calendar=new GregorianCalendar(); year=calendar.get(Calendar.YEAR); month=calendar.get(Calendar.MONTH)+1; day=calendar.get(Calendar.DAY_OF_MONTH); hour=calendar.get(Calendar.HOUR_OF_DAY); minute=calendar.get(Calendar.MINUTE); second=calendar.get(Calendar.SECOND); time = year + "年" + month + "月" + day + "日" + hour + ":" + minute + ":" + second; byte[] bb=content.getBytes("iso-8859-1"); content=new String(bb); byte[] cc=subject.getBytes("iso-8859-1"); subject=new String(cc); String username = session.getAttribute("username").toString(); String updateCondition1="insert into discuss ( name, email, subject, content, time, username) values( '"+ name+ "','"+ email+ "','" + subject+ "','"+ content+ "','"+ time + "','" + username + "')"; sql=con.createStatement(); sql.executeUpdate(updateCondition1); out.print("更新成功"); response.sendRedirect("dissess.jsp");} catch(SQLException e){out.print("更新失败");} %> 3.7、新用户注册功能的实现 SaveRegister.jsp用于保存新用户的信息,这些信息是由Register.jsp页面传递而来,首先判断用户名是否已被注册过了,若被注册过则提示已注册。 这是注册页面: <%@ page contentType="text/html; charset=GB2312" %>
您好,欢迎登陆注册页面,请详细填写您的资料。
23 广东海洋大学本科生课程实习报告
姓名
密码
性别
年龄
生日
电话
邮箱
返回前一页
这是现实把检查注册信息并保存注册信息工呢过: <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.sql.*" %> <% Statement sql; Connection con; ResultSet rs; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ out.print("123"); } /* public String handleString(String s){ try{byte bb[] = s.getBytes("iso-8859-1"); s=new String(bb); } catch(Exception ee){ return s; } */ try{ String database="test"; String uri="jdbc:mysql://localhost/"+database; con = DriverManager.getConnection(uri,"root","root"); String username = request.getParameter("username"); String password = request.getParameter("password"); String sex = request.getParameter("sex"); String age = request.getParameter("age"); String telephone = request.getParameter("telephone"); String email = request.getParameter("email"); String month = request.getParameter("month"); String day = request.getParameter("day"); String year = request.getParameter("year"); String msg = null; sql=con.createStatement() ; rs = sql.executeQuery("select * from student where username='" + username + "'"); //查询数据库 if (!rs.next()) {//如果不存在 String birth; birth = year + "年" + month + "月" + day + "日"; /* byte[] bb=username.getBytes("iso-8859-1"); username=new String(bb); byte[] b=sex.getBytes("iso-8859-1"); sex=new String(b); */ String updateCondition = "insert into student ( username, password, sex, birth, age, telephone , email )values('"+ username+ "','"+ password+ "','"+ sex+ "','" + birth+"','"+ age+ "','"+ telephone + "','"+ email + "')"; sql=con.createStatement(); sql.executeUpdate(updateCondition); //插入数据库中 msg = "恭喜你,已注册成功~"; out.println("
提示信息:
"+ msg + "
"); response.sendRedirect("login.html"); } else {//如果注册用户已存在 msg = "你所注册的用户已经存在,请你重新注册~"; out.println("
提示信息:
"+ msg + "
"); out.println("");} } catch(Exception e){ out.println("系统错误"); }; %> 3.8、用户取回密码功能的实现 GetPassword.jsp页面用于取回密码,给该页面传递一些用户填写的信息,将该用户注册时的对应信息与此信息进行比较,当该信息与用户注册时填写的一样时,便 25 广东海洋大学本科生课程实习报告 能取回密码,否则不能: <%@ page contentType="text/html; charset=GB2312" %> <%@ page import="java.sql.*" %>

填写以下资料,找回您的密码
<% Statement sql; Connection con; ResultSet rs; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ out.print("123"); }; try{ String database="test"; String uri="jdbc:mysql://localhost/"+database; con = DriverManager.getConnection(uri,"root","root"); if (request.getParameter("username") != null//username用户名 && request.getParameter("sex") != null//sex性别 && request.getParameter("email") != null) {//email电子邮箱 String username = request.getParameter("username"); String sex = request.getParameter("sex"); String email = request.getParameter("email"); String condition = "select * from student where username='" + username+ "' and sex='" + sex + "' and email='" + email + "'"; sql=con.createStatement(); rs = sql.executeQuery(condition);//从数据库中查找对应信息 if (rs.next()) {//如果找到 String password = rs.getString(3); String errmsg = "正确的填写信息,你的密码为:"; out.println("
提示信息:
" + errmsg + password + "
"); out.println(""); } else { String errmsg = "对不起,您不能取回你的密码,原因是你没能正确的填写信息~"; out.println("
提示信息:
" + errmsg + "
"); out.println(""); } } } catch(Exception e){ out.print("系统的错误"); } %> 3.9、用户和管理员删除帖子功能的实现 Delete.jsp页面用于删除帖子,在此页面获得两个参数id和replyid。其中id为帖子的标识符,replyid为是否是回帖,当replyid>0 时表示要删除的是回复贴,否则,当replyid<0,即等于0时表示要删除主帖: < <%@ page contentType="text/html; charset=GB2312" %> <%@ page import="java.sql.*" %> <% Statement sql; Connection con; ResultSet rs; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ out.print("驱动失败"); }; 27 广东海洋大学本科生课程实习报告 try{ String database="test"; String uri="jdbc:mysql://localhost/"+database; con = DriverManager.getConnection(uri,"root","root"); int id = Integer.parseInt(request.getParameter("id"));//获得主贴id int replyid = Integer.parseInt(request.getParameter("replyid"));//删除主贴还是回复贴 if(replyid>0){ if (session.getAttribute("username").equals("admin")) { String updatecondition = "update reply set content='此回复已被删除~'" + " where reply=" + id + " and id =" + replyid;//删除回复贴 sql=con.createStatement(); sql.executeUpdate(updatecondition); out.print("帖子已经删除"); response.sendRedirect("detail.jsp?id=" + id); } else out.print("

"+"你是非管理员,所以,没有权利删除帖子");%> >返回 <% } else {//否则,当replyid=0时表示 if (session.getValue("username").equals("admin")) { String condition3 = "delete from discuss where id=" + id; sql=con.createStatement(); sql.executeUpdate(condition3); String condition2= "delete from reply where reply=" + id; sql=con.createStatement(); sql.executeUpdate(condition2); String condition4 = "alter table discuss drop id "; sql= con.createStatement(); sql.executeUpdate(condition4); String condition5 = "alter table discuss add id int not null auto_increment primary key"; sql= con.createStatement(); sql.executeUpdate(condition5); response.sendRedirect("dissess.jsp"); } else out.print("你还不是管理员,所以你没有权删除帖子"); out.print("返回"); } } catch(Exception e){ out.print("删除主贴失败"); } %> 课程实习心得 经过一个多星期的实训,在这期间感受很多,所以有必要作一次心得总结。 在次实习开发过程中,遇到了非常的问题,可经过了老师,同学,以及网络上的查看相关资料,这些帮助下,终于完成本次课程实习。 懂得了如何开发一个完整的java web系统,所需要的技术,在遇到困难时 ,不怕辛苦,坚持下去,才可以取得成功。 而且课程实习,是对本课程的一次非常好的总结,对所学的知识,综合运用。 只有努力,不断辛苦,不放弃,坚定的把一个个技术难题解决啦,才可以真正的掌握本次课程所教的而技术。 第一,应该有信心, 第二,坚持不懈, 第三,学会如何寻求帮助。 学会如何在面对一个技术难题时,如何去寻找方法,帮它解决,这才是根本,锻炼我们大学生的这种,能力。 为以后的课程实习,还有将来走向社会打上厚实的基础。 29 广东海洋大学本科生课程实习报告 参考文献: 《jsp程序设计》............................................................... 清华大学出版社 张跃平、耿祥义 主编 《java面向对象程序设计》.............................................. 清华大学出版社 张跃平、耿祥义 主编 《数据库系统概论》..........................................................高等教育出版社 王 珊 、 萨师煊 主编
/
本文档为【基于jsp的简单论坛制作&#40;报告加源代码&#41;】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索

    姓名:
    性别::
    邮箱: