基于JavaEE的在线聊天聊天.ppt

聊城大学论文答辩,指导教师,学生姓名,年 月,基于JavaEE的在线聊天聊天 系统的设计与实现,论文提纲,,选题背景、研究内容,1,JavaEE技术介绍,主要创新,,总结及展望,5,参考文献,聊天系统的实现,选题背景,随着Internet的普及,越来越多的人们建立了自己的web网站,人们通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。 在线聊天是在一个网络空间进行的交谈,通过网上聊天可以实现人与人之间在线即时的交谈沟通。同时达到资源共享,在一般情况下,聊天系统的设计主要是C/S两层结构和B/S三层结构,本系统采用B/S系统。,聊天系统选题,研究内容,多层体系结构,客户显示层为客户提供应用服务的图形界面 业务逻辑层执行应用策略和封装应用模式 数据持久层定义、维护、访问和更新数据并管理和满足应用服务对数据的请求。,研究内容,基于SUN的JavaEE解决方案,,JavaEE体系结构图,研究内容,实现在线聊天系统。 JavaEE(Struts2,Spring,Hibernate)轻量级框架的无缝整合,JavaEE技术,框架选取 使用框架有如下几个优势 (1)提高生产效率 (2)具有更稳定、更优秀的性能。 (3)更好的保值性。,JavaEE技术,框架选取(2) 通过多个项目的经验积累以及对应用架构的分析比较,使用了轻量级框架的组合形式。 表现层使用Struts 2框架。 业务逻辑层使用Spring框架。 数据持久层使用Hibernate框架。,JavaEE技术,MVC设计模式,将程序分成相对独立,而又能协同工作的三个部分。通过使用MVC 架构,可以降低模块之间的耦合,提供应用的可扩展性。,JavaEE技术,Struts 2框架,Struts 2 作为MVC 模式的典型实现,核心控制器FilterDispatcher根 据请求决定调用何时的Action,JavaEE技术,Spring框架,Spring 是企业应用开发的“一站式“选择,并贯穿表现层、业务层及持久层。然而, Spring 并不想取代那些已有的框架,而与它们无缝地整合。,JavaEE技术,Spring的核心IoC容器 该容器负责创建、管理应用组件。从前端的控制器,以及底层的DAO组件,都处于Spring容器的管理下,以一种低耦合的方式运行。,JavaEE技术,Hibernate框架 ORMObject Relation Mapping完成面向对象的程序设计语言与关系数据库的映射。基于ORM 框架完成映射后,既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的技术优势。 Hibernate是目前最流行的ORM框架,其采用常优雅的方式将SQL 操作完全包装成对象化的操作。 其具有以下特征 轻量级封装,避免引入过多复杂的问题,调试容易,减轻程序员负担。 具有可扩展性, API开放。功能不够用时,可以自己编码进行扩展。,JavaEE技术,整合思路 Spring IoC容器就是一个工厂,该工厂负责生成、管理系统中的所有组件,其提供了依赖注入方式,使用工厂模式,无需自己管理DAO组件和业务逻辑组件。 Spring框架作为中间层框架,向上整合Struts 2框架,向下整合Hibernate框架。,JavaEE技术,Spring与Struts 2的整合 借助于Spring的插件,可以简单的完成Spring和Struts 2的整合。 让Spring来管理控制器。,JavaEE技术,Spring与Hibernate的整合 Spring利用IoC 特性的支持,如SessionFactory 的注入Hibernate 整合问题. Spring 与Hibernate 的整合能简化持久层的访问,大大提高了开发效率。其次重点介绍了HibernateTemplate 的使用,包括Spring 对Hibernate DAO 支持,以及利用IoC 特性简化DAO 开发步骤。,聊天系统的实现,系统运行示意图,聊天室的实现,系统模块划分图,聊天室的实现,模块功能分析 (一)用户注册登录模块 新用户在使用该聊天室系统时,必须先进行注册新用户操作,后台将注册信息添加到数据库中。再进行登录;当用户名与密码匹配成功,即可进入聊天室系统。 (二)在线用户显示模块 当用户登录进入系统后,该页面实现在线用户的统计,并将在线用户依次显示出来。 (三)用户交流聊天模块 该模块主要负责发送信息内容,选择聊天对象;除此之外,可以修改聊天内容的字体颜色以及发送的表情。发言的颜色和发言的表情通过下拉式组合框实现。发言内容书写完毕后。通过点击“发送”按钮,发送聊天内容。 (四)聊天信息显示模块 当用户选择聊天对象并发送聊天内容后,显示出当前发送的内容以及之前的历史聊天内容。 (五)系统消息显示模块 系统消息提示所有用户,聊天室的文明守则,以及当其他用户进入、情况。 (六)管理员模块 对不规范用户踢出操作 (七)辅助模块,聊天室的实现,数据库设计 E-R图该系统只存在用户一个实体,用户的属性包括id、用户名、密码、级别。,聊天室的实现,详细设计 (1)用户注册登录,注 册 流 程 图,聊天室的实现,详细设计 (1.1)用户注册 用户注册页面用户进入注册页面后, 根据要求,填写表单中各项数据, 单击注册按钮后,将输入的内容 通过异步刷新的方式传递给后台处 理页面register.action进行写入数据库 处理。其中,在进行表单传递的时候, 系统还调用了JavaScript的function check()函数对填入表单的数据进行 检验,一旦发现表单中有一个数据项 不符合要求,系统便会弹出出错信息。 提交到UserAction进行与数据库里的 数据进行对比,如果没有将信息添加 到数据库,如果存在则显示已存在, 用户名“/,聊天室的实现,详细设计 (1)用户注册登录,登 录 流 程 图,聊天室的实现,详细设计 (1.2)用户登录 用户在聊天室登录界面填入正确的注册信息,单击登录,系统将自动把用户填入的“帐号”、“密码”于数据库中存放的用户注册信息进行比对验证。系统进行用户身份验证时,首先利用Request对象,将用户填入的“帐号”(即用户名)、“密码”传递给预先定义的变量,再使用Select语句,将变量值与用户信息表进行比对,同时调用filter过滤器看该用户是否存在,是否已经登录,List list dao.query“ from User where username“, username; User user User list.get0; ifpassword.equalsuser.getPassword session.setAtrribute“user”, User;,,,聊天室的实现,详细设计 (2)主界面 聊天室主界面,该部分是聊天室的核心部分,该界面是主要分为四个部分页面头部,用户的显示(以及其相应的退出操作),左边是在线人员列表区,右边是聊天内容显示区,底部是用户发言区 main.jsp), 页面头部 , 在线人员列表 , 在线人员列表 ,用户发言区,聊天室的实现,详细设计 (2.1)显示在线人数列表,显 示 在 线 人员 流 程 图,聊天室的实现,详细设计 (2.1.1)显示在线人员列表 在开发聊天室程序时,为了让用户了解在线用户,并与各用户进行交流,需要提供实时获取并显示在线人员列表的功能. 在实现在线人员列表显示时,为了实时显示,需要Ajax技术 (1)在main.jsp页面编写JS函数,showOnline() var loadnew AjaxReques“online.jsp”nocache”new Date.gettime,deal_online,onerror”,”GET”; ; 2创建online.jsp.在文件中,主要将保存到集合类中的在线人员列表显示在页面。,聊天室的实现,详细设计 (2.2)用户发言,发送消息 流 程 图,聊天室的实现,详细设计 (2.2.1)用户发言 实现用户发言的具体步骤 (1)在页面底部添加用于收集用户发言信息的表单和表单元素 (2)编写自定义的JS函数send,用于调用Ajax实现用户发言 (3)在相关的Servlet类中,添加发送消息的方法sendMessages,在该方法中,首先获取用户发言相关信息然后对中文进行,转码,然后判断保存当天聊天信息的XML文件是否存在,最后将信息存入xml中,并重定向到网页 sourceMessage ““ from ““ face “对colorgreen“ to “说“ ““ content “(“ sendTime “)“;,聊天室的实现,详细设计 (2.3)显示聊天内容,显示聊天内容 流 程 图,聊天室的实现,详细设计 (2.3.1)显示聊天内容 实现显示内容的具体步骤如下 (1)编写JS自定函数showContent,用于实例化Ajax对象 2在servlet类中,编写getMessage方法,用于将页面重定向到显示聊天内容的jsp页面 (3)编写显示聊天内容的jsp页面,在该页面只需要应用EL表达式将返回的执行结果输出即可,try request.getRequestDispatcher“content.jsp“.forwardrequest,response; catch Exception ex Logger.getLoggerMessages.class.getName.logLevel.SEVERE, null,ex;, message,,,聊天室的实现,详细设计 (2.4)退出修改,退出修改 流 程 图,聊天室的实现,详细设计 (2.41)退出修改 编写自定义JS函数exit,用该函数重定向到leave。jsp页面 funcation Exit window.location.href”leave.jsp”, alert“欢迎下次登录”; ,密码修改 跳转到密码修改界面,与数据库中的用户名进行比对,然后对密码进行修改 String sql“update chatuser set password“123” where username“cgy”; //SQL语句 state.cuteUpdatesql; //将sql语句上传至数据库执行,创新内容,论文特点,1.系统的功能设计比较简洁,后台设计选择了JavaEE技术,基于组件的分层设计使系统结构清晰,负载均衡,且具有良好的扩展性,易于维护。 2.系统采用了MVC模式进行开发,做到了视图、控制和模型的分离。提高了设计的规范性,实现了各层间连接的松耦合。 3.在表示层,业务逻辑层,数据持久层分别引入了Struts2、Spring和Hibernate,通过松耦合使三者有机结合在一起,提高了系统的可扩展性。,总结与展望,参考文献,1耿祥义,张跃平JAVA 2实用教程M北京清华大学出版社,2004 2王立UML与软件工程基础M北京高等教育出版社,2004 3蔡剑,景楠Java Web应用开发M 北京高等教育出版社,2005. 4叶达锋Eclipse编程技术与实例M北京人民邮电出版社,2006 5邱哲,马斗Struts设计开发大全M北京清华大学出版社,2006. 6王中兵Java Web主流框架整合M北京电子工业出版社,2008 7范斯瓦尼MySQL 完全手册M

java在线聊天项目ppt_基于JavaEE的在线聊天聊天.ppt相关推荐

  1. Java项目:基于SSM的在线考试系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 这个项目是一个基于SSM的在线考试系统,分为考试用户和管理员两种角色. 考试用户功能包 ...

  2. Java开发实战项目分享之学成在线v1.0项目总结

    前言: 学成在线项目是传智燕青老师研发的JavaEE分布式微服务架构项目,采用SpringCloud框架研发,课程共20天,应广大学员的建议现将整个项目的技术点以问题的形式进行总结,方便大家学习总结. ...

  3. 基于Java EE平台项目管理系统的设计与实现(论文+PPT+源码)

    分类号_______________ 密级________________ UDC _______________ 学号 毕业设计(论文) 论文题目 基于Java EE平台项目管理系统的设计与实现 T ...

  4. java ee学生管理系统_基于JAVAEE的学生管理系统

    [实例简介] 基于JAVAEE的学生管理系统,配合oracle与glassfish使用即可 [实例截图] [核心代码] students-information-management-system-m ...

  5. Java springmvc web项目,基于maven的hello world入门级项目使用IntelliJ IDEA 2017版本

    IntelliJ IDEA使用教程 (总目录篇) 使用这个IntelliJ IDEA创建一个简单的Java web maven项目,我在前面的文章里面已经示范过了. 地址:IntelliJ IDEA ...

  6. 基于php的在线考试系统论文,基于php的在线考试系统的设计与实现 论文.docx

    郑州轻工业学院本科生毕业设计(论文)题 目:基于PHP的在线考试系统的设计与实现学生姓名:XXX专业班级:计算机科学与技术X班学 号: XXXXXXXX院 (系):国际教育学院指导教师(职称):XX( ...

  7. java招生系统项目_基于jsp的招生管理-JavaEE实现招生管理 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的招生管理, 该项目可用各类java课程设计大作业中, 招生管理的系统架构分为前后台两部分, 最终实现在线上进行招生 ...

  8. java 海鲜超市项目_基于jsp的海鲜超市管理-JavaEE实现海鲜超市管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的海鲜超市管理, 该项目可用各类java课程设计大作业中, 海鲜超市管理的系统架构分为前后台两部分, 最终实现在线上 ...

  9. java旅游网项目_基于jsp的旅游网-JavaEE实现旅游网 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的旅游网, 该项目可用各类java课程设计大作业中, 旅游网的系统架构分为前后台两部分, 最终实现在线上进行旅游网各 ...

最新文章

  1. mysql分组后组内排序_数据小白的转行之路-MYSQL(七)
  2. 印度式画线乘法基本操作
  3. 1.9 池化层-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. AutoLayout bug集合
  5. freemarker的测试结果框架_java必背综合知识点总结(框架篇)
  6. SSO的几种跨域方案
  7. java的main是主线程吗_main函数是主线程吗
  8. ubuntu 压缩率最高的软件_[图]Linux六大压缩算法横评:Ubuntu 19.10最终选择LZ4
  9. Android 表单之 TextView(文本框)详解
  10. 【LaTeX】下载及安装步骤
  11. 2021阿里淘系工程师推荐书单
  12. Leetcode刷题学习记录
  13. 阿里云解析是什么?个人版和企业版有什么区别?
  14. finclip设计指南与小程序设计指南
  15. 读《禅与摩托车维修艺术》
  16. 如何建设一个标签库?
  17. [译]5步分析pdf文件
  18. 日志分析篇---MSSQL日志分析
  19. win10开机有东西一闪而过_Win10 开机以后不一会儿会弹出一个黑框,usoclient.exe 一闪而过。这东西对电脑有...
  20. 研究生挂职锻炼-面试问答演练

热门文章

  1. neu1250矩阵快速幂哪~~
  2. 关于npm邮箱验证问题
  3. JavaScript(六)—— DOM 事件高级
  4. 切换python执行版本
  5. 如何确定图片名未改变 php,这里未改变的是数据库中默认的数据,比如修改时间?,还有发布用户名?...
  6. matlab中ncread读取nc文件其中一个三维参数的其中一维_Matlab使用技巧总结-1
  7. fastboot devices 找不到设备_处理工业废气找不到好设备?您应该了解一下工业静电油烟净化器...
  8. 前世档案 (15 分)
  9. oracle安全性规则,[ORACLE ]安全性
  10. mysql5.6下载linux云盘,mysql for linux