欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于JSP的单词通系统的设计与实现 毕业论文.doc

    • 资源ID:3920679       资源大小:891KB        全文页数:53页
    • 资源格式: DOC        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于JSP的单词通系统的设计与实现 毕业论文.doc

    本科生毕业论文(设计) 题 目 基于 JSP 的单词通系统的设计与实 现 学 院 计算机学院 专 业 计算机科学和技术 学生姓名 学 号 年级 指导教师 教务处制表 二 一 年五月二十六日 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 基于基于 JSP 的单词通系统的设计与实现的单词通系统的设计与实现 计算机科学与技术 摘要 英语在生活中越来越重要,如何简单有效地学习英语成为人们关心的问题,单词通系统的应 用能够提高背单词的效率,帮助用户简单快速掌握英语。基于 JSP 的单词通系统是一个集单词查询, 用户注册登陆,生词表管理,根据艾宾浩斯记忆曲线背诵单词等功能为一体的辅助学习英语系统。本 文研究了单词通系统在我国发展状况,分析了 JSP 技术的基本语法和运行机制,使用 JSP 技术进行动 态页面设计,研究了 MVC 三层框架的组成和运行过程,对艾宾浩斯记忆曲线进行了研究。利用 JSP 技术和 MVC 框架实现了基于 JSP 的单词通系统。搭建了基于 B/S 模式的三层架构模式,将理论技术 运用于实际生活的研究,使更多的人受益于现代科技,因此此项研究颇具现实意义。 主题词 JSP;单词通系统;MVC 框架;B/S 模式;艾宾浩斯记忆曲线 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 2 The Design 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 24 进行跳转。 运用 Flash 按钮使界面更加美观,有好,方便用户的使用和操作。 按钮功能介绍: 首页:用于跳转到首页,便于对单词意义进行查询; 登陆:注册用户登陆,查看自己的生词库,背诵单词,查看自己的学习情况; 我的生词表:登陆用户查看自己的生词,可以对生词添加和删除; 背单词:登陆用户背诵生词表单词,并可根据艾宾浩斯记忆曲线和自己自身情况背 诵单词; 修改个人信息:登陆用户修改自己的注册信息(性别,出身日期,邮箱) ; 修改密码:登陆用户修改登陆密码; 注册:用户注册,填写个人信息,之后系统自动记录学习过程; 退出登陆:登陆用户退出登陆,系统暂停记录学习过程,只可查询单词解释。 界面中间是艾宾浩斯记忆曲线,让用户直观地了解记忆曲线。记忆曲线下方可以查 询生词。 界面的 HTML 设计通过 FRAMESET 元素,把页面分成三个部分,头部的 Flash 按钮 (top.html) ,中间的主框架对单词查询(mainframe.html),底部的标题(bottom.html)。主要 框架代码如下: 当遇到生词,可以把单词输入进行单词解释查询,通过互联网就会搜索后台数据库, 寻找单词解释。单词查询结果如下图: 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 25 图 5.2 单词查询结果 主要的数据库连接代码和数据选择操作代码如下: String sql = “select word,explain from dic where word='“+s+“'“; try DBManager db = new DBManager(); Connection dbCon =db.getDBConnection(); ResultSet rs = null; Statement dbStatement = null; dbStatement = dbCon.createStatement(); rs = dbStatement.executeQuery(sql); while (rs.next() Word t=new Word(); t.setWord(rs.getString(“word“); t.setExplain(rs.getString(“explain“); words.add(t); db.closeConnections(); catch (Exception e) e.printStackTrace(); 本系统可以进行模糊查询,当忘记欲查询单词的正确拼写时,可将忘记字母以“?” 或代替,系统将列出所有符合条件之单词供选择,方便用户查询单词。 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 26 用户注册和登录系统是方便记录用户在背诵学习的工程,可以根据记忆曲线选择自己 的背诵的单词。 图 5.3 注册界面 图 5.4 登陆界面 在注册中判断注册失败有该会员名已被使用或者输入的字符不符合要求,以及在输入密 码时两次输入的密码不相同,主要判断代码如下: try m=sql.executeUpdate(); catch(SQLException exp) backNews=“该会员名已被使用或你的输入不符合要求!“; reg.setBackNews(backNews); else backNews=“两次输入的密码不相符!请重新输入!“;reg.setBackNews(backNews); elsebackNews=“信息填写不完整或名字中有非法字符,请重新输入!“; reg.setBackNews(backNews); 登陆后,系统就对用户的背诵过程进行记录,用户可以添加删除自己的生词。 下图是添加生词后的生词本: 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 27 图 5.5 生词本 系统记录每次添加单词的用户名,把用户名和单词作为生词表的主码,用于区别不 同用户添加的单词。以下是添加生词的主要代码,根据登陆用户的用户名 logname 来判断 不同用户的生词表。及时不同用户都存有相同的单词也不会混淆。 Vector newwords = new Vector(); String snewword=(String)req.getSession().getAttribute(“newword“); String sexplain=(String)req.getSession().getAttribute(“explain“); newwords nwd = new newwords(); nwd.setWord(snewword); nwd.setExplain(sexplain); String sql = null; sql = “insert into newwords(name,word,explain)values('“+logname+“','“+ snewword + “','“+ sexplain+“')“; 用户可以选择已背生词选择没有背诵过的单词,这样可以减少重复背诵增加效率。 添加生词后可以进行记忆生词,下图是生词背诵界面: 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 28 图 5.6 背诵界面 背诵生词时是根据解释和单词的词性在空白表格中填入单词,提交后系统会自动判 断,精确单词的背诵正误,并给出正确答案,这样可以帮助用户及时更改,更好的学习。 以下代码是对填入的单词与数据库正确的单词进行比较,判断单词的正误,并且把 背诵单词的时间写入数据库: String sqls = “select * from newwords where name = '“ + logname + “'“; try int i = 1; DBManager db = new DBManager(); Connection dbCon = db.getDBConnection(); ResultSet rs = null; Statement dbStatement = null; dbStatement = dbCon.createStatement(); rs = dbStatement.executeQuery(sqls); while (rs.next() String sanswer = req.getParameter(i + “); i+; boolean boo = sanswer.equals(rs.getString(“word“); if (!boo) Word tt = new Word(); tt.setWord(rs.getString(“word“); tt.setExplain(rs.getString(“explain“); 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 29 SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd“);/ String time = df.format(new Date();/ String sqlhc = “update newwords set data='“ + time + “' where word = '“ + rs.getString(“word“) + “'“; DBManager db1 = new DBManager(); Connection dbCon1 = db1.getDBConnection(); Statement dbStatement1 = null; dbStatement1 = dbCon1.createStatement(); dbStatement1.executeUpdate(sqlhc); answers.add(tt); SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd“); String time = df.format(new Date(); String sqlhc = “update newwords set data='“ + time + “' where word = '“ + rs.getString(“word“) + “'“; DBManager db1 = new DBManager(); Connection dbCon1 = db1.getDBConnection(); Statement dbStatement1 = null; dbStatement1 = dbCon1.createStatement(); dbStatement1.executeUpdate(sqlhc); db.closeConnections(); catch (Exception e) e.printStackTrace(); 背错单词进行提醒: 图 5.7 背错单词纠错 在背诵单词的同时把背诵的时间日期写入生词数据表,记录用户背诵这些单词的时 间,可以根据艾宾浩斯记忆曲线,在不同的时间:当天,1 天后,2 天后,3 天后,5 天 后,7 天后,进行重复记忆,加深记忆,提高记忆效果。运用下拉表单的形式主要是可以 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 30 方便用户选择,按照时间先后次序,可以提醒用户先选择 7 天前背诵单词进行复习,巩 固背诵,提高记忆效果。 图 5.8 选择不同时间背诵的单词 单词背诵选择界面和后台程序主要代码如下: 界面主要代码: 请选择天数 7天前 5天前 3天前 2天前 1天前 0天前 后台程序主要代码: String date=(String) req.getParameter(“select“); int iDate = 0; if(date.equals(“seven“) iDate = 7; else if(date.equals(“five“) iDate = 5; else if(date.equals(“three“) iDate = 3; else if(date.equals(“two“) iDate = 2; else if(date.equals(“one“) iDate = 1; else iDate = 0; Calendar cal = Calendar.getInstance();/使用默认时区和语言环境获得一个日历。 cal.add(Calendar.DAY_OF_MONTH, -iDate);/取当前日期的前N天. java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(“yyyy-MM-dd“); 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 31 String date1=format.format(cal.getTime(); String sqls = “select * from newwords where name = '“ + logname + “' and data='“+date1+“'“; try DBManager db = new DBManager(); Connection dbCon = db.getDBConnection(); ResultSet rs = null; Statement dbStatement = null; dbStatement = dbCon.createStatement(); rs = dbStatement.executeQuery(sqls); while (rs.next() Word word = new Word(); word.setWord(rs.getString(“word“); word.setExplain(rs.getString(“explain“); answers.add(word); db.closeConnections(); catch (Exception e) e.printStackTrace(); 单词背诵正确率查询: 图5.9 背诵正确率曲线 通过背诵正确率曲线可以清楚地看到用户在记忆单词时学习情况,了解自己的情况不 断地调整学习对策,可以有效地背诵单词。 5.3 本章小结本章小结 本章主要利用 Dreamweaver 对界面进行设计,利用 JSP 技术和 MVC 框架进行系统设计, 实现系统,完善系统单词查询,登陆,添加生词等功能。熟悉 HTML 标记语言,利用 JSP 技术在 HTML 文本中添加代码实现动态功能。利用 Flash 按钮,美化界面。利用 PostgreSQL 数据库进行数据存储。 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 32 第六章第六章 小结小结 经过一段时间的毕业设计,在指导老师的指导下基本完成了单词通系统,本系统功 能还不是十分的完善,完成了主要的基本功能:单词的查询,用户注册和登陆,生词的 添加删除,单词背诵,根据艾宾浩斯记忆曲线选择背诵等功能。 通过这次毕业设计以及撰写本毕业论文,我学会了利用先进的 JSP 技术结合数据库 的方法和技术,而且对程序中的错误有进一步的认识。我将大学学到的软件设计充分应 用于实践,除此之外,我还掌握了 Dreamweaver 等开发工具,提高了自己的动手能力。 我对于软件设计的相关步骤和流程有了更深刻的理解,熟悉并掌握了数据库操作和 HTML 的编写,也对数据库语言的功能有了更深刻的体会。锻炼我整体分析能力,在系统分析 和开发过程中需要全面考虑整体分析,因为只有这样才能设计和开发出使用户满意的系 统。同时,在这里感谢我的指导老师悉心指导。 本系统实现了单词通所应有的基本功能,但是还一部分未能实现,今后分析问题应该 全面细致,设计完整的系统,使操作更加方便。该系统还存在很多不足,由于本人对界 面设计了解不多,导致对界面的控制能力不够,界面不美观,数据库方面的知识不足, 对与各个表之间的关系不能完全掌握,数据表设计简单。在对用户个人信息的输入时, 密码没有加密处理。以前对这一问题没有很高的认识。对用户密码信息就行加密处理, 可以很好的安全手段,使用户的权益得到保证。加密技术是网络安全采取的主要安全保 密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送, 到达目的地后再用相同或不同的手段还原(解密) 。加密技术包括两个元素:算法和密钥。 算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理 解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。学习和了解加密技术 后,在以后的系统设计时,应对用户信息进行安全加密,保证用户的权益,使系统设计 更加完善。 在系统开发过程中,充分的学习到 MVC 框架,MVC 框架对于系统开发和重用都起到很 好的效果。希望在今后自己能继续对 JSP 等技术进行深入的学习。 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 33 参考文献参考文献 1 明日科技.JSP 开发技术大全M.北京:人民邮电出版社, 2007. 2 Y.Daniel Liang.Java 程序设计导论M.北京:机械工业出版社, 2007. 3 明日科技 王国辉 网易.JSP 数据库系统开发案例精选M .北京:人民邮电出版社,2006 4 王珊 萨师宣.数据库系统概论M.北京:高等教育出版社, 2006. 5耿祥义.JSP 基础教程M .北京:清华大学出版社,2004. 6Bruce Eckel 著,Thinking In JavaM.北京:机械工业出版社,2009. 7陈威,白伟明,李楠著,JSP 工程应用与项目实践M.北京:机械工业出版社,2009. 8孙卫琴,精通Struts,基于MVC的Java Web设计与开发M.北京:电子工业出版社,2008.87-35. 9 武延军 黄飞跃. 精通 JSP 编程技术M.北京:人民邮电出版社,2001.8:170-200 10 柏亚军. JSP 编程基础及应用实例集锦M.北京:人民邮电出版社,2001.7:10-60 11 清宏计算机工作室.JSP 编程技巧M.北京:机械工业出版社,2000.1:103-106 12 周影 .网络编程语言 JSP 实例教程M.北京:电子工业出版社,2003.6:30-55 13 陈海山.深入 Java Servlet 网络编程M.北京:清华大学出版社,2002.2 :12-20 14Donny.JSP 与网站开发编程实战M.北京:科学出版社 ,2001.7:166-184 15Steven Holzner.Java 技术内幕M.北京:机械工业出版社,2002.1:65-70 16 Phil Hanna .JSP 技术大全M.北京:机械工业出版社, 2002.3 :37-57 17 Karl Moss. Java Servlet 开发人员指南M.北京:清华大学出版社,2002:189-192 18蔡剑,景楠. Java Web 应用开发:J2EE 和 TomcatM.北京: 清华大学出版社. 2005:23-132 19 http:/topic.csdn.net 20 http:/www.w3school.com.cn 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 34 声声 明明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰 写过的研究成果,也不包含为获得四川大学或其他教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示 谢意。 本学位论文成果是本人在四川大学读书期间在导师指导下取得的,论文成果归四川 大学所有,特此声明。 学位论文作者(签名) 论文指导教师(签名) _ 20 年月日 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 35 致致 谢谢 首先我在这里向养育和培养我的父母表示深深地思念和感谢,再向关心我,帮助我 的老师和同学表示感谢! 能顺利圆满地完成我的设计,离不开自身的努力,离不开指导老师 老师的指点, 更离不开 大学这个大环境四年来在学习和生活的熏陶和培养。 大四下学期开始不久,我开始了我的毕业设计。在这几个月里,我得到了导师代老 师的关心和教导, 老师在学术上的渊博知识让我在这几个月的学习和研究中深受其益。 我向于老师表示深深地谢意;再向和我进行讨论问题,让彼此相互帮助和学习工作的同 学表示感谢;向计算机学院实验室中,陪着我们度过几多光阴的管理员和老师表示谢意。 设计的完成,为我在川大的学习生涯画上了一个圆满的句号。在 大学度过的美好 时光将使我终生受益。 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 36 译文:译文: Servlets 和和 JSP 页面的最佳实践页面的最佳实践 Java Servlet 技术和 JSP(JavaServer Pages)是服务器端的技术,目前这种技术控 制了整个服务器端 Java 技术市场,并且逐渐成为开发商业网络应用程序的技术标准。 Java 开发人员喜欢使用这项技术开发应用程序有很多的原因,包括:很容易学习这种技 术,并且在基于 web 的应用程序中,一次编写代码,到处可以运行,具有很强的跨平台 性。 更重要的是,如果按照最佳实践方式 servlet 和 JSP 可以有效地帮助开发者把网页 逻辑与界面设计和显示分离。最佳实践方法已被证实是在应用中可以开发高质量、可重 用与易维护的 web 应用程序的较好的方法。与此相似的技术有很多比如,嵌入到 HTML 文 件中的 Java 代码(脚本),作为的文件中的部分,可能会导致那些复杂的应用程序运行 效率不高,难以重复利用,维护难等问题。但是利用最佳实践方法可以改变这些弊端。 在这篇文章中,将介绍 servlet 和 JSP 技术的最佳实践的重要性,这里假设读者已经 有这两种技术的基本原理知识。 这篇文章将涵盖以下内容: 简要介绍 Java Servlets 和 JSP(JavaServer Pages)基本知识。 为开发 servlet 和 JSP 的开发人员提出一些建议,技术和规则。 提供关于 servlet 和 JSP 开发的最佳实践。 概述概述 ServletsServlets 和和 JSPJSP 技术技术 类似公共网关接口(CGI)脚本,servlet 的支持请求和响应的编程模型。 当客户端 向服务器发送请求,服务器将请求发送到 servlet。 然后 servlet 构建一个响应,服务 器将该响应发送回客户端。 但是不像 CGI 脚本那样,servlet 与 HTTP 服务器是运行在相 同的进程内。 当客户端发出请求的情况下, service 方法被调用,并且通过一个请求和创建响应 对象。 servlet 首先确定该请求是一个 GET 操作还是 POST 操作。 然后它调用下列方法 之一: doGet 或者 doPost。如果请求是 GET 操作就会调用 doGet 方法,如果请求是 POST 操作则会调用 doPost 方法。doGet 和 doPost 两种方法都会接受请求( HttpServletRequest )和响应( HttpServletResponse )。 简而言之,Servlet 是 Java 的一个特殊的类。servlet 可以使用 print 语句生成动 态的 HTML 网页内容。但是需要注意的重要问题是,servlet 是在容器中运行的,并且对 会话和对象生命周期的管理是由那些 API 提供的。 因此,当你使 servlets 的时候,你 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 37 将会继承到 Java 平台的所有优势,其中包括安全性,跨平台性等。servlet 的数据库是 通过 JDBC 来访问 API 和具有跨平台的可移植性的 servlet。 Java Server Page(JSP) JSP 技术是 servlet 技术的一个更高水平层次的抽象。它是由 Sun 公司研究和开发的 一个开放的,免费提供规范的技术,主要作为与微软的 Active Server Pages(ASP)技 术相比较并且改进的技术,以及作为 Java 2 企业版(J2EE)的一个关键组件。目前,许 多商用的应用程序服务器,如 BEA 的 WebLogic,IBM 公司的 WebSphere,Live 的 JRun,Orion 等等)都支持 JSP 技术。 JSPJSP 页面是如何工作的?页面是如何工作的? JSP 页面实际上是由传统的 HTML 页面嵌入 Java 代码形成的 web 页面。 JSP 页面文件 扩展名是.jsp,而不是.html 或者是.htm,该扩展名将告诉服务器,此网页需要特殊处理, 这个特殊处理是由服务器扩展功能实现或者插件来完成。 当一个 JSP 页面被调用时,它首先会被编译(由 JSP 引擎编译)成一个 Java servlet。与此同时,这个 servlet 就像其他的 servlet 一样被 servlet 引擎处理。然后 该 servlet 引擎会加载这个 servlet 类(使用类加载器)并执行它,用来创建动态 HTML 页面,之后发送到浏览器,为用户显示结果,处理过程如图 1 所示。该 servlet 创建一 些必要的对象,而这些对象会作为一个特殊的字符串写入输出流,并且会在浏览器中显 示这些字符串对象。 图 1:调用 JSP 页面 请求/响应流程 下一次请求该页面时,JSP 引擎将会执行已经加载的 servlet 的 JSP 页面,除非该 JSP 页面发生了变化。如果发生这种情况,JSP 引擎会自动重新编译已经修改过的 JSP 页 面并执行。 最佳实践最佳实践 在本节中,阐述在 servlet,特别是在 JSP 页面中的最佳实践的做法。重点强调 JSP 最佳实践,主要是因为 JSP 技术比 servlet 技术似乎更广泛的应用(可能是因为 JSP 技 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 38 术推动了页面表示与逻辑的分离)。最好的实践结合是集成了 servlet 技术和 JSP 页面 技术,是模型、视图、控制器(MVC)设计模式,将在本文的后面部分进行讨论分析。 在在 HTMLHTML 页面中不要过度使用嵌入的页面中不要过度使用嵌入的 JavaJava 代码代码:在很小的项目应用中将所有 Java 代 码直接嵌入到 JSP 页面中是没有什么问题的。但是过度使用此功能导致页面程序代码 像意大利面一样杂乱无章,使人不容易阅读和理解。 因此应该尽量减少 HTML 页面中 的 Java 代码,编写单独的 Java 类,用它来执行计算等其他逻辑,简化 JSP 页面代码。 一旦这些类被测试,实例就已经被创建了。 选择合适的选择合适的 includeinclude 机制:机制:那些静态数据,如页眉,页脚和导航栏的内容是最好保 存在单独的文件中,并且不要重复的编译动态生成它们。 一旦这些内容存储在各个 不同的文件中,就可以使用下面 include 机制中的任何一种就可以在所有的页面中引 入它们: 1. include 指令: 2. include 行动: 在 JSP 页面转换为 servlet 时(转换阶段) ,第一种 include 机制是包含指定的文件 内容,第二个 include 行为,指定页面已经执行后,页面包含 response 动作产生的内容。 如果页面包含的内容不会经常改变的时候,我推荐使用第一种 include 指令方式,因为 它执行的速度快,性能较好。当页面包含的文件经常改变,并且在执行页面时还没有办 法确定所要引入的页面的时候,我推荐使用第二种 include 行为的方式。 另一种 include 机制是使用由 JavaServer Pages 标准标记库(JSTL)提供的 行为标记。 用户可以使用此标记来引用本地或者远程的文件内容。 下面是 一些例子: 不要将业务逻辑和表示混为一体不要将业务逻辑和表示混为一体 :对于更高级更为复杂的应用中,并且当涉及更多 的代码时,不要将业务逻辑和表示混在同一个文件时十分重要的。因为当把业务逻辑 和表示分开后,任何一方的改动,不至于会影响到另一方。但是编写的 JSP 代码应仅 限于前端显示,不能处理后台逻辑。那么,应该怎样实现业务逻辑这一部分呢?这就 是 JavaBeans 技术发挥作用的地方。JavaBeans 技术是一种便携的,平台无关的组件 模型,它可以是开发人员编写的组件和并且可以在任何地方重用组件。在 JSP 页面中, JavaBeans 组件将会处理业务逻辑并将数据返回到 JSP 页面,同时格式化由 JavaBeans 中返回的数据,以便在浏览器中显示。 一个 JSP 页面通过调用 JavaBeans 组件使用 set 方法和 get 方法来操作它的属性。利用 JavaBeans 组件处理 JSP 页面中 的业务逻辑的好处是: 1. 可重用的组件:不同的应用程序将能够重复使用相同的组件。 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 39 2. 业务逻辑和表示逻辑分离:可以在 JSP 页面上更改数据的表现方式而不影 响业务逻辑。 换句话说,网页设计师可以只专注于页面的设计,而 Java 开发人员可以只专注于业务逻辑设计,两者互不影响。 3. 保护源代码的安全,维护自己的知识产权。 如果在你的应用程序中使用了 Enterprise JavaBeans(EJBs),就必须将业务逻 辑保留在 EJB 组件中,并且提供生命周期管理,事务支持,多客户端访问域对象(实 体 Beans)。 可以在 Enterprise BluePrints 获得更为详细的资料。 使用自定义标记使用自定义标记 :并不是所有开发者都喜欢将 Java 代码(或 scriptlets)嵌入在 HTML 文档中的,可能是因为他们不了解 Java 语言并且也不乐意学习它的语法。虽然 JavaBeans 组件可以用来封装了大部分的 Java 代码,但是在 JSP 页面中使用那些代 码仍然需要有一些与内容开发有关的 Java 语法知识。 JSP 技术可以允许开发者通过标记库引入自定义标记。 作为一个 Java 开发人员, 您可以通过引入可扩展部署并且可以在 HTML 这类语法使用的自定义标记来扩展 JSP 页面。 自定义标记还允许你自己提供更好的封装,来更好的使业务逻辑和表示逻辑 分隔。此外,它们提供了自定义表示的方法,而使用 JSTL 却很难做到这一点。 自定义标记的好处:自定义标记的好处: 1. 他们可以消除你的 JSP 应用程序中的 scriptlets。标记必要的参数,参数 可以传递属性或者内容主体。因此,不需要 Java 代码来初始化或设置组件 属性。 2. 自定义标记语法更加的简单。 脚本程序是用 Java 编写代码,但自定义标 记可以在类似于 HTML 的语法中使用。 3. 自定义标记可以提高非程序员内容开发的效率,可以让他们执行由 HTML 文 件不能完成的任务。 4. 自定义标记是可重用的。 节省了开发和测试时间。 Scriptlets 是不可以 重复使用,除非你通过剪切和粘贴来重用,不能直接调用。 总之,你可以使用自定义标记来完成复杂的任务像使用 HTML 文件中创建表达式一样。 当编写自定义标记库的时应遵守一下编程指南: 1. 简单便捷简单便捷:如果需要一个标记中包含多个属性,那么最好将它分为多个标 记。 2. 可利用性:可利用性:标记的使用者(HTML 开发者)更易使用,并且利用率高。 3. 不要在不要在 JSPJSP 页面中发明另外一种编程语言:页面中发明另外一种编程语言:用户不要使用自定义标记编写 显示的程序。 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 40 4. 尽量不要重新发明标记尽量不要重新发明标记:目前有几个可用的 JSP 标记库,如 Jakarta Taglibs Project 等。查看这些标记库,看是否有你想要的标记,不要重复 开发。 不要重新发明标记不要重新发明标记 :虽然自定义标记提供了重用有效组件的方法,但是仍然需要创 建,测试和调试它们。 此外,开发人员经常重复的发明新的标记,但是利用这些标 记的解决方法不是最高效的。JavaServer Pages Standard Tag Library(JSTL)JSP 标准标记库,通过提供一组可重复使用的标准标记来解决使用自定义标记的解决方法 效率不高的问题。JSTL 定义了一个通用的标准的标记库,可以在任何地方使用,所 以这样你就不再需要使用 scriptlet(或各种供应商提供的迭代标记)在集合中进行 迭代。JSTL 中的包括各类标记,例如循环标记,读取没有按照 Java 语法的属性,在 各种数据结构的遍历,有条件地计算表达式,通过一种精确地方式设置属性和脚本变 量,并解析 XML 文档等各类标记。 使用使用 JSTLJSTL 表达式语言表达式语言 :通过 JSP 属性的范围和参数请求将信息传递给 JSP 页面。 表达式语言(EL),是专门为网页开发者特别设计的语言,是将 JSP 属性范围提升为 业务逻辑到 JSP 页面通信的标准方法。 但是,请注意的虽然 EL 是 JSP 技术的一个关 键方面,但是它不是一个通用的编程语言。 相反,它只是一个简单的数据访问语言, 这种特性使得它可以方便地访问(和操作)的应用程序数据,而无需使用 scriptlet 或请求时间表达式的值。 在 JSP 1.x 中,网页作者必须使用表达式来存取系统的值,如下面 的例子: “ 或自定义的 JavaBeans 组件的值: 表达式语言允许网页页面作者使用一个简化的语法访问对象。 例如,要访问一个简 单的变量,你可以使用类似以下语句: 而如果要访问嵌套的 JavaBeans 属性,您可以使用类似以下的语句: 如果您使用 JavaScript 开发,你会感到非常熟悉,因为 EL 采用 JavaScript 语法存取结 构化数据。 必要时可以使用过滤器必要时可以使用过滤器 :过滤器是 JSP 一项新的技术特点。 如果你曾经遇到一个这 样的情况,你有多个 servlets 或 JSP 页面需要压缩它们的内容,你可以写一个压缩 大学本科毕业论文基于 JSP 的单词通系统的设计与实现 41 过滤器并将其应用到所有的资源上。例如, 在 Java BluePrints 中,通过过滤器来 提供 SignOn。 使用可移植的安全模型使用可移植的安全模型 :大多数应用服务器具有服务器开发商或者供应商特定的安 全功能,这样就将开发者局限在某台特定的服务器。为了最大限度地提高企业应用程 序的可移植性,可以使用一台可移植性的 web 应用程安全模型 。但是最后归根结底, 这归结成权衡问题 。 例如,如果你有一组很早就定义好的用户,您可以使用基于表 单的登录或基本身份验证来管理他们。 但是如果你需要动态地创建用户,你需要使 用特定容器的 API 来创建和管理用户。虽然特定容器的 API 是无法移植的,但是使用 适配器设计模式就可以克服这一点。 使用数据库存储持久信息使用数据库存储持久信息:你可以通过 HttpSession 对象来实现会话,HttpSession 提供了一个简单方便的机制来存储用户信息,识别用户 cookie。 使用会话存储临时 信息,即便这些信息丢失了,你也不用担心。(当会话过期或客户端变更浏览器时, 会话数据就会丢失。)如果你希望存储更加持久会话信息,使用一个数据库,在浏览 器之间共享数据库中的持久信息更加安全更具有可移植性。 利用缓存内容利用缓存内容 :你永远不应该动态的重新生成请求之间不会更改的内容。 您可以 在客户端,代理端或服务器端缓存内容。 使用连接池使用连接池 :我建议使用 JSTL 进

    注意事项

    本文(基于JSP的单词通系统的设计与实现 毕业论文.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开