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

    应用jsp和hibernate点设计实现在线通讯录设计.doc

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

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

    应用jsp和hibernate点设计实现在线通讯录设计.doc

    第 29 页 共 30 页本 科 毕 业 设 计1 引言1.1 研究背景随着网络及现代通信技术的发展,人们之间的联系越来越便捷,这也使得同时与许多人保持联系成为可能,而单纯依靠人脑已经很难记住所有人的联系方式。对于存储电话号码到手机上的方式,比较方便,随时随地可以联系,不过只能通过电话联系,没有记录其他的联系方式;对于记录电话等信息到本子上的方式,第一也可能丢失本子,第二是查找起来比较困难,需要人工查找,而且更新时不容易,需要涂改以前记录的信息,第三格式比较死板,不利于跟随用户的需求扩展;对于用名片夹存放名片的形式也是查找起来不方便,有丢失的危险;对于记录到WORD文档或打印出来的,也是扩展性不强,查找起来不方便。因此,以软件形式实现的通讯录成为了许多人保持联系方式的首选。Web站点提供一个图形化的界面,用于浏览网上资源。它是一个在Internat上运行的全球性、分布式信息发布系统。该系统通过Internat向用户提供基于超媒体的数据信息服务。它把各种类型的信息(文本、图像、声音和视频等)有机地集成起来,供用户使用。Web可以提供将图形、音频、视频信息集合于一体的特性。同时,Web非常易于导航,只需要从一个链接跳到另一个链接,就可以在各页站点之间进行浏览。浏览WWW对系统平台没有要求。无论从Windows平台、UNIX平台、Macintosh平台,还是别的平台都可以访问WWW。大量的图形、音频和视频信息会占用相当大的磁盘空间,对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上,只需要在浏览器中指明这个站点就可以了。使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息都是一体的。由于各个Web站点的信息包含站点本身的信息,信息的提供者要经常对站点上的信息进行更新。各个站点都要尽量保证信息的及时性。Web的交互性首先表现在它的超链接上,用户的浏览顺序和所浏览的站点完全由用户自己决定。除此之外,通过表单的形式可以从服务器方获得动态的信息。用户通过填写表单可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。客户端启动浏览器,在浏览器地址栏中输入要访问页面的URL地址,经地址解析,找到服务器的IP地址,向该地址所指向的Web服务器发出请求。Web服务器根据浏览器送来的请求,把URL地址转化成页面所在的服务器上的文件全名,找到相应的文件。如果URL指向HTML静态页面,Web服务器使用HTTP把该文档直接送给客户端,由客户端浏览器解释执行。如果HTML文档中加入了JSP、ASP、PHP等动态代码,则应用程序将查询指令发送给数据库驱动程序,由驱动程序对数据库进行操作。查询结果返回给数据库驱动程序,并由驱动程序返回Web服务器。Web服务器将结果数据嵌入到页面中相应的位置。Web服务器将完成的页面以HTML格式发送给客户端。客户端浏览器解释执行接收到的HTML文档,在屏幕上显示结果。本通讯录将极有普通通讯录的主要功能,它可以对联系人进行分组,并可以添加或删除组,也可以添加或删除联系人,或者对已经保存的联系人信息进行修改,查询功能也是必不可少的。1.2 研究现状在线通讯录系统是每一个用户管理通讯录不可缺少的信息系统,它的内容对于用户来说非常重要,所以在线通讯录系统应该能够为每一个用户提供充足的信息和快捷的查询手段,大大的方便了人与人之间的交流。 随着科学技术的不断增强,计算机科学的日渐成熟,网上通讯工具迅速发展,其强大的功能已被人们深刻的认识,并且进入各个领域发挥越来越重要的作用。 作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。 因此,开发这样一套应用软件成为很有必要的事情,对于我们即将毕业的学生来说,也是一次将计算机应用于现实的一次很有意义的实践活动。1.3 研究目标本在线通讯录系统旨在开发一个功能实用,操作方便,简单明了的通讯录管理系统。实现对联系人的增加、删除、修改、查询和留言板模块功能。在设计软件的同时,尽可能的减少对系统资源的占用,并且力求做到通过使用本系统,提高用户之间的联系效率,使通讯录的管理工程化,规范化。2 系统分析2.1 经济上的可行性在线通讯录系统是一个通讯信息进行动态跟踪和指导的系统,拟采用B/S结构体系,而MyEclipse和tomcat是本系统使用的开发工具,两个都可以在网上免费下载并安装使用;Mysql是本系统的后台数据库,同样也可以在网上免费下载使用。因此,基本无需支付任何费用就可以使用这些开发工具,另外,本系统完全由个人开发,除了个人的时间和精力的消耗之外,基本上没有什么经济方面的开发成本。本系统的设计与开发是非商业性的,虽然没有经济方面的收益,但对于本人而言,既加深了本人对JSP和Hibernate技术的了解和掌握,也为以后的软件系统的设计和开发积累了一定的实践经验。总之,本系统的经济社会效益是大于它的开发成本的,因而,经济上是可行的。2.2 技术上的可行性在线通讯录管理系统的开发主要包括网站前台和网站后台两个方面,不管是普通用户还是网站管理员都是通过浏览器进入该系统。对于网站前台,要求网站的界面友好、美观大方、操作方便等要求;对于网站后台则要求网站信息更新及时、数据存储安全可靠、数据一致性高及易维护等要求。根据以上这两点,并结合B/S结构在数据安全性、一致性、实时性等方面相对于C/S结构的优点,确定本系统采用B/S结构的开发模式。选择JAVA技术,关键在于它有一组强大的控件库,如Web服务器控件、Web用户控件、HTML控件等,最为熟悉的莫过于登录控件,它为应用程序提供了一种可靠的、无需编程的登录解决方案,同时帮助实现网站的用户身份验证过程的自动化。通过这些控件,可以大大提供系统的开发效率,因为效率是软件系统开发的关键。更为重要的是MyEclipse集成开发环境是一套完整的开发工具集,可以用于生成JSP.NET Web应用程序,不仅自带了运行JSP.NET程序所需的服务,如tomcat6.0服务器,还提供MySql Server数据库各种操作,这些大大提高了编程的效率和代码质量。加上MyEclipse网页设计工具的使用,可以设计出更简洁大方的页面,其代码直接可以复制到MyEclipse中使用,这更进一步方便了JAVA技术的运用,从而在技术上为本系统的设计和开发提供了可能。2.3 需求分析开发软件首先要进行的就是需求分析,通常这一步需要与客户进行广泛的交流,对于一个复杂一些的系统,可能需要与客户进行数次会议,甚至需要需求分析人员在客户处调查数月。对于本通讯录系统,我们可以先将自己作为通讯录的使用者,从自己的角度来考察需求(在真正的项目中,这一点是十分忌讳的,需求分析人员可以帮助,诱导客户说出他的需求,而绝不能从自己的角度替客户提出需求)。很显然,一个普通的通讯录系统,最基本的功能是记录一个联系人的信息,那么,联系人的信息需要有哪些呢?这是一个在需求分析中要特别注意的问题,一般而言,通讯录使用者可能需要的信息有以下这些:姓名、性别、工作单位、电话、住址、邮箱、QQ和其他备注信息。这样开发者了解了需要保存的每个联系人的基本信息有哪些,同时,应当注意到,不是每一位联系人都有工作单位,也不是每一位联系人都有手机或者QQ。因此,除了姓名与性别外,其他信息都可以是空的,但既然是通讯录,其中也至应当记录该联系人的一项联系信息,所以,对上述信息记录时的要求应当为:姓名与性别是必需的,其他所有信息至少有一项不为空。与记录联系人信息相关的操作很容易联想到有增加联系人、删除联系人和对联系人信息进行更新3钟。所以对联系人的操作的需求归纳为以下3点:增加新的联系人、删除已存在的联系人、修改已存在的联系人的信息。软件形式的通讯录与传统纸面形式的通讯录比较起来,可以实现更为方便、有效的管理。为了便于查看及使用,通常通讯录需要对联系人进行分组管理,这又成为一个新的需求挖掘点。基于实例的简单性考虑,对于组操作假定仅有以下需求:组增加、组删除、组改名。对于组的操作还有一个细节性的问题,有时候有些联系人可能不会被归属于任何组,此时,该联系人会被归入“未分组”这个组。也就是说,“未分组”本身也需要成为一个组,而且,它不应当可以被删除。另外,为了避免所有人打开电脑都能随意查看机主的通讯录,本系统还应设置一个登录界面,即拥有机主的用户名和密码才能进入系统。而作为通讯录的拥有者,同时还会拥有一个数据库,可以方便的进行用户名的添加功能。3 开发环境3.1 JSP技术3.1.1 JSP概述JSP的全称是Java Server Pages,即“基于Java服务器端动态页面技术”。它由Sun Microsystems公司在1999年6月推出,近年来已发展成为一种最流行的动态网页开发技术。Sun公司自1990年开始设计Java,凭借着其简单、面向对象、与平台无关等特点迅速征服了世界,尤其在日益普及的Internet应用上,更是有着其独特的、不可替代的优势。由于JSP是在Java的基础上发展而来的,因此它也具有Java的一切优秀品质。这些优点,使得它区别于同时期的其他动态网页技术,并且比它们更加符合和满足程序开发人员的需要。JSP在HTML代码中嵌入Java程序片段,并使用各种JSP指令,构成了JSP页面。这种页面可以完成操作数据库、上传文件等复杂的逻辑处理功能。另外,还通过支持JavaBean实现了功能扩展。3.1.2 JSP运行机制JSP是服务器端技术。在服务器端,JSP引擎解释JSP代码,然后将结果以HTML或XML页面的形式发送到客户端。在客户端的用户是看不到JSP代码的。JSP容器(Web容器或Servlet引擎)接收到以.jsp为扩展名的HTTP访问请求后,实质是交给了一个JSP引擎处理,这个引擎就是一个Servlet,名叫org.apache.jspper.servlet.JspServlet。当每个Jsp页面在第一次被访问的时候,JSP引擎就会把它翻译成一个Servlet源程序(.java),接着再把这个Servlet的源程序编译成一个Servlet的Class类文件(.Class),然后再由Web容器以像普通Servlet程序一样的方式来装载和解释执行JSP容器管理JSP页面生命周期的两个阶段:转换阶段和执行阶段。当有一个对JSP页面的客户请求到来时,JSP容器检验JSP页面的语法是否正确,将JSP页面转换为Servlet源文件,然后调用javac工具类编译Servlet源文件生成字节码文件,这一阶段是转换阶段。接下来,Servlet容器加载转换后的Servlet类,实例化一个对象处理客户端的请求,在请求处理完成后,响应对象被JSP容器接收,容器将HTML格式响应信息发送到客户端,这一阶段是执行阶段。从整个过程中可以知道,当第一次加载JSP页面时,因为要将JSP文件转换Servlet类,所以响应速度较慢。当再次请求时,JSP容器就会直接执行第一次请求时产生的Servlet,而不会再重新转换JSP文件,所以其执行速度和原始的Servlet执行速度几乎相同。在JSP执行期间,JSP容器会检查JSP文件,看是否有更新或修改。如果有更新和修改,JSP容器会再次编译JSP或Servlet;如果没有,就直接执行前面产生的Servlet,这也是JSP相对于Servlet的好处之一。3.1.3 JSP特点JSP具有如下主要特点:a) 把内容的生成和显示分离使用JSP技术可以把界面的开发与程序逻辑的开发分离开。Web开发人员使用HTML或XML标记来设计界面,使用JSP标记或脚本生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBean组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。JSP技术使得开发人员的分工更加明确,页面设计者可以修改内容而不影响逻辑,应用程序的开发者可以修改逻辑而不影响内容。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。b) 生成可重用的组件绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序要求的复杂处理。开发人员可以共享和交换组件,或把这些组件提供给更多的用户使用。基于组件的开发方法有效地提高了应用程序的开发效率,加速了项目的总体开发进程。c) 应用标记简化页面的开发JSP技术封装了许多功能,这些功能是生成与JSP相关的HTML或XML的动态内容时所需要的。标准的JSP标记能够访问和实例化JavaBeans组件,设置或检索组件的属性,下载Applet,以及执行使用其他方法难以实现的功能。JSP标记具有可扩充性,允许开发者扩展JSP标记,开发人员也能够定制常用功能标记库。第三方或其他开发人员也可以创建自己的标记库。由于页面制作者可以使用标记库中的功能,因此大大减少了对脚本语言的依赖,并降低了页面制作的复杂度。d) 具有Java的特点由于JSP页面的内置脚本是基于Java语言的,而且所有的JSP页面都被编译成Java Servlet,所以JSP具有Java的特点,如健壮的存储管理、安全性、跨平台特性、“一次编写,各处运行”等。3.2 Hibernate框架3.2.1 Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。3.2.2 Hibernate核心接口Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。Session接口负责执行被持久化对象的CRUD操作。但值得注意的是Session对象是非线程安全的。SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。值得注意的是SessionFactory并不是轻量级的,因为这需要一个很大的缓存,用来存放预定义的SQL语句以及映射元数据。一个工作单元通常指一个数据库事务。一个项目通常只需要一个SessionFactory就足够了,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。Transaction接口负责事务相关的操作。它是可选的,也可以设计编写自己的底层事务处理代码。Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。Configuration类负责配置并启动Hibernate,创建SessionFactory对象。在hibernate启动过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建Sessionfactory对象。3.2.3 Hibernate特点Hibernate框架具有以下优点,从而使得其成为目前最为流行的J2EE开源框架之一:a)Hibernate是JDBC的轻量级对象封装,它是一个独立的对象持久层框架,有很少的核心类,和App Servlet、EJB没有必然联系。学习成本和代价较低,初学者完全可以在一个小时内安装、配置好系统,并开发出第一个Hibernate程序。b)编程代码量大大减少,Hibernate把开发者从繁重的编程工作中解放出来。c)基于Hibernate开发的各种应用系统可维护性好,系统修改十分方便。d)Hibernate是一种非强迫性解决方案。开发者在写业务逻辑与持续性类时,不必遵循许多Hibernate特定的规则和设计模式。这样,Hibernate可以与大多数新的和现有的应用平稳集成,而不需要对应用的其他部分作破坏性修改。e)Hibernate致力于称为Java管理持续性数据问题的一种全面解决方案,强调协调与关系数据库的交互,强调开发者的重心应放在业务问题上,而不是技术问题。3.2.4 Hibernate配置<hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="show_sql">true</property>配置缓存插件<property name="hibernate.cache.provider_class"> org.hibernate.cache.EhCacheProvider </property> <property name="hibernate.cache.use_second_level_cache">true</property><property name="hibernate.cache.use_query_cache">true</property><mapping resource="conf/hbm/contant.hbm.xml" /><mapping resource="conf/hbm/user.hbm.xml" /><mapping resource="conf/hbm/message.hbm.xml" /></session-factory></hibernate-configuration>3.3 数据库连接池3.3.1 数据库连接池概述数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。3.3.2 C3p0连接池配置C3p0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。C3p0数据库连接池配置信息:<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="$jdbc.driverClass" /> <property name="jdbcUrl" value="$jdbc.jdbcUrl" /> <property name="user" value="$jdbc.user" /> <property name="password" value="$jdbc.password" /> <property name="minPoolSize" value="$jdbc.miniPoolSize" />连接池中保留的最大连接数。 <property name="maxPoolSize" value="$jdbc.maxPoolSize"/> 初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。 <property name="initialPoolSize" value="$jdbc.initialPoolSize"/>最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。 <property name="maxIdleTime" value="$jdbc.maxIdleTime"/>当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。 <property name="acquireIncrement" value="$jdbc.acquireIncrement"/>定义在从数据库获取新连接失败后重复尝试的次数。 <property name="acquireRetryAttempts" value="$jdbc.acquireRetryAttempts"/>两次连接中间隔时间,单位毫秒。 <property name="acquireRetryDelay" value="$jdbc.acquireRetryDelay"/>连接关闭时默认将所有未提交的操作回滚。 <property name="testConnectionOnCheckin" value="$jdbc.testConnectionOnCheckin"/>C3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供C3p0测试使用。 <property name="automaticTestTable" value="$jdbc.automaticTestTable"/>每60秒检查所有连接池中的空闲连接。 <property name="idleConnectionTestPeriod" value="$jdbc.idleConnectionTestPeriod"/>当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出。SQLException,如设为0则无限期等待,单位毫秒。 <property name="checkoutTimeout" value="$jdbc.checkoutTimeout"/></bean></beans> 3.4 Log4j日志3.4.1 Log4j简介程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。例如,跟踪语句(trace),结构转储和常见的system.out.println或printf调试语句。log4j提供分级方法在程序中嵌入日志记录语句。日志信息具有多种输出格式和多个输出级别。  使用一个专门的日志记录包,可以减轻对成千上万的system.out.println语句的维护成本,因为日志记录可以通过配置脚本在运行时得以控制。log4j维护嵌入在程序代码中的日志记录语句。通过规范日志记录的处理过程,一些人认为应该鼓励更多的使用日志记录并且获得更高程度的效率。3.4.2 Log4j日志配置# direct log messages to stdout and file#log4j.rootCategory=INFO.stdout#log4j.logger.com.yesky.product.business=INFO#log4j.logger.com.yesky.product.dao=INFO#log4j.logger.com.yesky.product.controller=INFOlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p(%F:%L)%c1:%L - %m%nlog4j.logger.org.hibernate=debug log4j.logger.com.ibatis=debuglog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debuglog4j.logger.com.ibatis.common.jdbc.ScriptRunner=debuglog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debuglog4j.logger.java.sql.Connection=debuglog4j.logger.java.sql.Statement=debuglog4j.logger.java.sql.PreparedStatement=debug,stdout3.5 开发工具3.5.1 Eclipse简介Eclipse 平台是一个具有一组强大服务的框架,这些服务支持插件,比如Java开发环境插件(JDT)、插件开发环境(PDE)和其他的第三方插件(New tool)。它由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。 平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要任何插件时才加载该插件。除了内核外,其他每样东西都是作为插件来实现的。 工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的文件,以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。 工作台为 Eclipse 提供用户界面。它是使用标准窗口工具包(SWT)和一个更高级的API(JFace)来构建的。3.5.2 Tomcat简介Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。  Tomcat 运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 这个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。3.5.3 MySQL Server 简介MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,目前MySQL被广泛地应用在Internet上的中小型网站中。提供由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库 。MySQL的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不占用过多的系统资源。可运行在不同的操作系统下。MySQL有一个非常灵活而且安全的权限和口令系统。当客户与MySQL服务器连接时,他们之间所有的口令传送被加密,而且MySQL支持主机认证。MySQL支持大型的数据库,可以方便地支持上千万条记录的数据库。拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。支持查询的SELECT和WHERE语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。 4 总体设计4.1 系统组成系统由用户信息管理、联系人信息管理、留言板三部分组成。用户信息管理包括用户注册和用户登录;联系人管理包括添加联系人、删除联系人、修改联系人、联系人分组和联系人查询;留言板包括添加留言、删除留言和查看留言列表。4.1.1 用户管理用户登录:登录界面为用户提供用户登录,用户首先需要选择登陆对象,然后输入用户名和密码,系统将数据提交到后台进行处理,如果校验成功,则跳转到系统主界面,并将用户对象保存在session;如果校验失败,则报错。用户注册模块:用户在登录界面点击“注册”,就可以进入到注册界面,在这里用户必须填写好自己的各项资料,如:用户名、密码、性别、年龄、联系方式、地址、邮箱等。这些信息将为其他用户查询联系人信息提供方便。4.1.2 联系人管理联系人管理模块包括添加联系人,删除联系人,修改联系人信息等。添加联系人:用户登录成功后点击添加联系人,进入添加联系人页面,输入联系人的姓名、性别、年龄、联系方式、地址、邮箱,点击保存按钮,显示添加成功,返回主页面。删除联系人:把已经存储过的联系人进行删除。修改联系人信息:用户登录成功后可以对已经存储的联系人信息进行修改,及时更新,方便联系。联系人查询:用户成功登陆后可以,可以根据关键字或者姓名查询联系人信息。联系人分组:用户增加联系人时可以对联系人进行分组操作,这样有助于对联系人管理,方便查询。4.1.3 留言板普通用户登录成功后可以在留言板模块留言,其他用户登录后可以看到此留言。管理员登录成功后可以对留言板内容进行管理。普通用户只能填写留言和查看留言,只有管理员才能删除留言。4.2 系统结构图系统包括三个部分,用户管理、联系人管理和留言板。用户管理部分包括用户注册和用户登录;联系人管理包括添加联系人、删除联系人、修改联系人、查询联系人和联系人分组,查询联系人包括姓名查询和分组查询;留言板包括填写留言、删除留言和查看留言。如图4.1所示。图4.1 系统结构图5 详细设计与实现5.1 用户注册5.1.1数据库表单表5.1 用户注册表字段名称数据类型长度是否允许为空说明UserIDInt4否用户IDUserNameVarchar50否用户姓名UserpwdVarchar50否用户密码UsersexChar10否用户性别Useragevarchar50否用户年龄UserPhonevarchar50否联系方式Useremailvarchar50否联系邮箱UserAddressvarchar50否联系地址5.1.2 数据库实体图用户注册实体包括用户名、密码、性别、年龄、地址、手机号、邮箱。实体图如图5.1所示。图5.1 用户注册实体图5.1.3 处理流程图用户登录,后台判断是否有注册号,如果没有正确的注册号弹出请注册页面,填写注册信息,保存,判断操作成功是否成功,显示相应的成功提示和错误提示。如果有注册号直接进入主页面。流程图如图5.2所示。图5.2 用户注册流程图5.1.4 部分实现代码管理员注册部分代码:public String addUserInfo()userService.save(user);return null;Overridepublic void save(User user) userDao.save(user);相应的Hibernate操作:public void save(User user) this.getHibernateTemplate().save(user);5.1.5 实现后界面示意图图5.3 新用户注册示意图5.2用户登录5.2.1 数据库表单字段含义类型长度默认值NULL/主键UserID用户IDvarchar50不允许空UserName用户名varchar50不允许空Userpwd密码varchar20不允许空表5.2 用户登录表5.2.2 数据库实体图用户登录实体包括用户ID、用户名和用户密码。如图5.4所示。图5.4 用户登录数据库实体图5.2.3 流程示意图用户登录,输入用户名和密码,后台数据库检验是否正确,正确进入主页面,否则错误提示。如图5.5所示。进入主页面输入用户名、密码错误提示判断数据输入是否合法?结 束 登 录图5.5 用户登录流程图5.2.4 部分实现代码用户登录部分代码:public String login()int state = userService.login(user);String info = "该用户不存在!"if(state = 0)getRequest().setAttribute("info", info);return "login"if(state = 2)info="用户密码错误!"getRequest().setAttribute("info", info);return "login"用户登录Hibernate操作:public User login(User user) / TODO Auto-generated method stubString value=user.getUserName();String queryString = "FROM User where userName =?"User DBuser =(User) this.getHibernateTemplate().find(queryString,value).get(0);return DBuser;5.2.5 实现后界面示意图图5.6 用户登录示意图5.3 联系人管理5.3.1 数据库表单表5.3 联系人表字段含义类型长度默认值NULL/主键idIDint4主键/自增groupId所属组IDint4外键name姓名varchar50sex性别是/否4address住址varchar255mobile手机varchar15mail邮箱varchar50字段含义类型长度默认

    注意事项

    本文(应用jsp和hibernate点设计实现在线通讯录设计.doc)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




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

    三一文库
    收起
    展开