JAVA课程管理网站开发——在线答疑模块的实现-毕业论文设计_第1页
JAVA课程管理网站开发——在线答疑模块的实现-毕业论文设计_第2页
JAVA课程管理网站开发——在线答疑模块的实现-毕业论文设计_第3页
JAVA课程管理网站开发——在线答疑模块的实现-毕业论文设计_第4页
JAVA课程管理网站开发——在线答疑模块的实现-毕业论文设计_第5页
免费预览已结束,剩余29页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文本科毕业论文 (科研训练、毕业设计) 题题 目:目:JAVA 课程管理网站开发课程管理网站开发 在线答疑模块的实现在线答疑模块的实现 姓 名: 学 院:软件学院 系:软件学院 专 业:软件工程 年 级: 学 号: 指导教师 : 职称: 职称: 年 月 厦门大学学士学位论文 I JAVAJAVA 课程管理网站开发课程管理网站开发 在线答疑模块的实现在线答疑模块的实现 摘要 为了方便学习与信息的交流,在结合动态服务网页(JSP)和 MYSQL 技术之下开发 了这个快捷、界面友好的网上论坛系统。系统使用动态服务网页(JSP)技术建设论坛的骨干 框架,使用 MYSQL 制作系统的数据库,实现了一个功能相对齐全的留言系统,学生与老师可 以自由地提出问题以及帮助他人解决问题,或者交流经验。 该留言模块功能较齐全,在这里可以自由地提出自己的问题或对他人的问题发表意见, 另外还可以及时地解决网友的问题,获取对自己有用的知识。该论坛还有一些特殊的功能, 如强大的搜索功能等。 关键词 动态服务网页 JavaBean JDBC 厦门大学学士学位论文 II The Development of JAVA Course Management Site -The realization of online answering module Abstract In order to facilitate the exchanging of peoples information, unified JSP and MYSQL under the server technology, the contact surface friendly system has developed. using the JSP technology to construct the main frame, using MYSQL as the systems database, the system realized a forum module. In the system, the user can propose questions freely, and can help other people to solve their problems, or exchange experience. This forum function is completed. Everyone may freely express his viewpoint here, and express the opinion to the subject. They also may promptly solve others questions, and gain the useful knowledge here. This forum also has some special functions, such as the power search function. Key words Java Server Pages JavaBean JDBC 厦门大学学士学位论文 III 目录 第一章 引言-1 第二章 系统技术及运行环境-2 2.1 JSP 技术简介-2 2.2 JAVABEAN 技术简介-2 2.3 JDBC 技术简介-2 2.4 TOMCAT 技术简介-3 2.5 运行环境 -3 第三章 需求分析-4 3.1 编写目的 -4 3.2 任务目标 -4 3.2.1 基本性能-4 3.2.2 开发目标-4 3.2.3 应用目标 -4 3.3 选择编程语言 -5 3.3.1 JSP 与 ASP 的比较-5 3.3.2 JSP 的特点与优点-5 第四章 系统设计-7 4.1 系统设计思想 -7 4.1.1 总体设计 -7 4.1.3 答疑模块系统总体分析 -9 4.2 数据库设计思想 -9 4.3 各单元模块设计 -10 4.3.1 用户注册登陆功能-10 4.3.2 发贴与回复功能-10 4.3.3 管理员管理帖子与用户管理功能-12 第五章 编码实现 -13 5.1 功能总体说明 -13 5.1.1 功能总体说明 -13 5.1.2 主要功能流程-13 5.2 各个功能模块的实现 -14 5.2.1 数据库的连接-14 5.2.2 加精与置顶模块的实现-18 5.2.3 分页显示的功能实现-21 5.2.4 发表与回复功能模块实现 -22 5.2.5 后台管理模块的实现-24 结束语-26 致谢语-27 参考文献-28 厦门大学学士学位论文 IV CONTENT Chapter 1 Introduction-1 Chapter 2 Technical and operational environment-2 2.1 JSP Technical Overview -2 2.2 JAVABEAN Technical Overview-2 2.3 JDBC Technical Overview-2 2.4 TOMCAT Technical Overview-3 2.5Operational Environment -3 Chapter 3 Demand Analysis-4 3.1preparation of purpose -4 3.2Mission objectives -4 3.2.1Basic performance -4 3.2.2Development goals-4 3.2.3 Application goal -4 3.3Choice of programming language-5 3.3.1 Comparison of JSP and ASP-5 3.3.2 The characteristics and advantages of JSP -5 Chapter 4 System Design-7 4.1Design ideas -7 4.1.1 Design -7 4.1.3 Q try Class.forName(“com.mysql.jdbc.Driver“); conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/bbs?user=root catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); return conn; public static Statement createStmt(Connection conn) Statement stmt = null; try stmt = conn.createStatement(); catch (SQLException e) e.printStackTrace(); 第五章 编码实现 15 return stmt; public static ResultSet executeQuery(Statement stmt, String sql) ResultSet rs = null; try rs = stmt.executeQuery(sql); catch (SQLException e) e.printStackTrace(); return rs; public static ResultSet executeQuery(Connection conn, String sql) Statement stmt = null; ResultSet rs = null; try stmt = conn.createStatement(); rs = stmt.executeQuery(sql); catch (SQLException e) e.printStackTrace(); finally close(stmt); return rs; 厦门大学学士学位论文 18 public static int executeUpdate(Connection conn, String sql) int ret = 0; Statement stmt = null; try stmt = conn.createStatement(); ret = stmt.executeUpdate(sql); catch (SQLException e) e.printStackTrace(); finally close(stmt); return ret; public static PreparedStatement prepareStmt(Connection conn, String sql) PreparedStatement pstmt = null; try pstmt = conn.prepareStatement(sql); catch (SQLException e) e.printStackTrace(); return pstmt; public static PreparedStatement prepareStmt(Connection conn, String sql, int autoGeneratedKeys) PreparedStatement pstmt = null; try 第五章 编码实现 19 pstmt = conn.prepareStatement(sql, autoGeneratedKeys); catch (SQLException e) e.printStackTrace(); return pstmt; public static void close(Connection conn) if(conn != null) try conn.close(); catch (SQLException e) e.printStackTrace(); conn = null; public static void close(Statement stmt) if(stmt != null) try stmt.close(); catch (SQLException e) e.printStackTrace(); stmt = null; public static void close(ResultSet rs) 厦门大学学士学位论文 20 if(rs != null) try rs.close(); catch (SQLException e) e.printStackTrace(); rs = null; 5.2.2加精与置顶模块的实现 在管理员标题界面中,通过在标题后添加加精与置顶的连接来通过后台的程序来实现修改数 据库里面的 isgood 的值。7 表5.2 加精代码实现 通过修改 isgood 的值为 1,把帖子设置为精华帖。 表5.3 精华帖代码实现 List articles = new ArrayList(); Connection conn = DB.getConn(); Statement stmtCount = DB.createStmt(conn); ResultSet rsCount = DB.executeQuery(stmtCount, “select count(*) from taolun where isgood = 1“); rsCount.next(); int totalRecords = rsCount.getInt(1); totalPages = (totalRecords + PAGE_SIZE - 1)/PAGE_SIZE; if(pageNo totalPages) pageNo = totalPages; Statement stmt = DB.createStmt(conn); int startPos = (pageNo-1) * PAGE_SIZE; String sql = “select * from taolun where isgood = 1 order by pdate desc limit “ + startPos + “,“ + PAGE_SIZE ; System.out.println(sql); ResultSet rs = DB.executeQuery(stmt, sql); while(rs.next() Article a = new Article(); a.initFromRs(rs); articles.add(a); DB.close(rsCount); 厦门大学学士学位论文 22 DB.close(stmtCount); DB.close(rs); DB.close(stmt); DB.close(conn); % 精华帖页面如图5.2所示: 图5.2精华帖页面 表5.4 置顶代码实现 5.2.3 分页显示的功能实现 这里是分页功能的实现,这里把每页几条记录设为一个常量便于修改。 表5.5 分页显示代码实现 articles = new ArrayList();/定义一个数组链表 ResultSet rsCount = DB.executeQuery(stmtCount, “select count(*) from taolun where pid = 0“); / 显示所有pid=0的帖子 rsCount.next(); int totalRecords = rsCount.getInt(1);/总记录数 totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE; if (pageNo totalPages) 厦门大学学士学位论文 24 pageNo = totalPages; Statement stmt = DB.createStmt(conn); int startPos = (pageNo - 1) * PAGE_SIZE; String sql = “select * from taolun where pid = 0 order by pdate desc limit “ + startPos + “,“ + PAGE_SIZE; System.out.println(sql); ResultSet rs = DB.executeQuery(stmt, sql); while (rs.next() Article a = new Article(); a.initFromRs(rs); articles.add(a); DB.close(rsCount); % 5.2.4 发表与回复功能模块实现 在页面article.jsp,填写标题与内容提交到自身页面 表5.6 发表帖子功能代码实现 标题: 内容: 第五章 编码实现 25 回复功能关键代码 表 5.7 回复功能实现 String sql = “insert into taolun values (null, ?, ?, ?, ?, ?, now(), ?, ?)“; PreparedStatement pstmt = DB.prepareStmt(conn, sql); pstmt.setInt(1, pid); pstmt.setInt(2, rootId); pstmt.setString(3, title); pstmt.setString(4, cont); pstmt.setString(5,0); pstmt.setInt(6, 0); pstmt.setInt(7,0); pstmt.executeUpdate(); Statement stmt = DB.createStmt(conn); stmt.executeUpdate(“update article set isleaf = 1 where id = “ + pid); % 这里是javscript实现五秒之后自动跳转8 表5.8 Javascript 实现延迟跳转 span id=“time“ style=“background:red“5秒钟后自动跳转,如果不跳转,请点击下面链接 0) delay-; document.getElementById(“time“).innerHTML = delay; else window.top.location.href = url; setTimeout(“delayURL(“ + url + “)“, 1000); /delayURL(http:/wwer) / 主题列表 delayURL(“article.jsp“);/回复成功跳转到主页面 5.2.5 后台管理模块的实现 留言系统除了能够让用户实现前台的浏览和回复等操作之外,还必须能够使管理人员能 够对系统的各种信息进行维护,比如帖子的增加、删除、等等。管理功能是答疑系统相当重 要的一部分功能。 管理员可以通过主页面进入系统后台进行维护,点击之后,首要的就是进行身份验证, 输入正确的账号,密码之后,方能进入。出于安全性考虑,管理员账号应尽量少分配,密码 也要尽量复杂,经常更换。 管理的主要功能有帖子的浏览、发表,删除、修改等管理。 这一部分的实现也没有新的方法,使用的依然是一些 SQL 语句来对相关数据进行删除, 修改、增加。 第五章 编码实现 I 删除功能实现的关键代码为 表 5.9 删除功能代码实现 厦门大学学士学位论文 26 结束语结束语 在该系统的开发过程中采用了当今流行的多种热门技术,在开发过程中严格遵守正规 软件系统开发的流程,本模块在开发过程中利用 jsp 和 javabean 相结合的技术充分体现了 java 这一语言一次开发处处运行的特点。开发中严格遵守软件工程中技术和说明文档的书 写和备份,为系统测试和维护提供一个良好的书面说明。 本系统在已投入使用的系统基础上增加和拓展了一些新的功能。使用了 jsp 和 javabean 相结合的这门技术使系统的可移植性得到很大的提高,在系统将来使用范围进一 步扩大的情况下本系统可以在原有的基础上作升级和拓展 完成这次设计任务总共用了十个星期时间,前四个星期用来收集资料、学习要用到的各 项开发技术、系统分析,中间四个星期用来设计系统,后二个星期用来测试及修改。论文的 撰写一直贯穿其中。 通过这次毕业设计,我学到了许多新的知识,培养了我综合多门学科中的知识、迅速规 划并开发出目标系统的能力以及编程能力。另外也有许多心得体会,所谓系统开发如人生百 味,酸甜苦辣皆有之。 严格按工程的方法来设计系统相当重要,不能认为基于 Web 的数据库管理系统很小,可 以无需花太多的时间来做系统分析,甚至可以无需经过系统定义而直接进入系统编码阶段, 这种想法很天真。即使是小系统,若想保证质量,把系统做得既可靠又有效,也应该考虑方 方面面。系统分析过于简单,系统定义过于抽象,则在系统设计与编码阶段遇到的困难就越 多,特别是其中不得不做一些功能性甚至系统结构性方面的变动,将面对许多重复性的工作。 在系统开发过程中重复工作过多,将会极大地影响系统开发的积极性,从而影响整个系统的 质量。在这一点上,我体会尤深,我花了三个星期,即接近系统开发一半的时间用在系统分 析与系统定义上,也就是在开始浪费了一周多的时间,即边编码边分析,边分析边编码,后 来越来越乱越来越复杂,不得不重新考虑系统开发计划的合理性。总之,在这一点上,我的 体会是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论