您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > J2EE程序设计――课程设计报告
成都信息工程学院课程设计报告课程名称:J2EE程序设计题目名称:简单微博系统学生学号:2009121097学生姓名:邓涛技术报告(20分)程序及运行(60分)答辩(20分)总分设计评语:一、程序功能模块划分1.系统功能模块框图简单微博系统用户注册模块用户登陆模块好友管理模块微博管理模块粉丝查看模块添加好友模块删除好友模块查看好友模块删除微博模块广播微博模块图1系统功能模块框图2.各功能的具体实现内容1)用户注册模块:用户输入的注册信息包括,用户名、用户密码、用户真实姓名、手机号、Email、QQ号码。在用户注册模块要求检查用户名是否已存在,检查输入Email是否存在,如果存在则不让用户注册。2)用户登陆模块:用户打开登陆模块,要求用户输入用户注册的用户名以及对应密码,用户密码验证成功,则加载用户的相关信息,包括用户的好友列表,粉丝列表,已广播微博信息以及关注好友发送的微博信息。3)好友管理模块:该模块登陆用户可以查看到自己已添加的好友列表,添加新注册用户为自己的好友,删除自己已添加的好友。4)粉丝查看模块:登陆用户可以通过该模块看到自己的粉丝列表(即将当前用户添加为好友的用户列表)。5)微博管理模块:登录用户可以使用该模块查看自己以广播的微博信息,并对广播的微博信息删除,查看好友广播的微博信息。二、功能实现流程图1.系统主功能用户登陆用户注册开始添加好友广播微博验证用户密码验证失败删除好友查看粉丝列表查看好友微博注销登陆验证通过结束用户名是否存在已存在用户名不存在注册成功图2系统主功能实现流程图2.异步刷新好友微博信息功能用户登陆成功好友微博列表加载用户信息开始一个每隔time时间执行一次window.setInterval(function(),time)访问服务器,检查好友是否发送新微博有好友微博更新追加到好友微博列表中否图3异步刷新的方式显示最新的好友发布的微博信息功能实现流程图三、数据库设计1.数据库E-R图图4数据库E-R图2.数据库表设计1)表名:_user2)说明:存储用户的基本信息3)表结构表1_user表结构设计字段名类型长度主外键可否为空备注idintPKnotnull用户id,自增namevarchar45notnull用户登录名passwordvarchar150notnull用户密码密文reg_datedatetimenull用户注册日期fan_numintnull用户粉丝数量edite_datedatetimenull用户信息修改日期real_namevarchar45null真实姓名cell_phonevarchar20null用户手机号emailvarchar45notnull用户Email地址qq_numvarchar45null用户QQ号1)表名:_friend2)说明:存储用户的好友信息3)表结构表2_friend表结构设计字段名类型长度主外键可否为空备注idintPKnotnull记录id,自增useridintFKnotnull用户的ID号friendidintnotnull所加好友的ID号1)表名:_blog2)说明:存储用户发送的微博信息3)表结构表2_blog表结构设计字段名类型长度主外键可否为空备注idintPKnotnull微博id,自增typeintnotnull1文字,2图片微博contentvarchar500notnull微博内容publishe_datedatetimenull微博发布时间imagevarchar200null图片URLuseridintFKnotnull用户ID四、程序设计1.程序分层设计结构图HTML表示层Struts2Action访问控制层AJAXJSONJava代码业务逻辑处理Hibernate持久持层SpringAOP事务管理SpringIOC(DI)图5程序分层设计结构图2.所使用框架的配置过程1).Struts2的配置a.用过Myeclipse的为工程添加StrutsCapabilities,选择Struts版本2.2如下图,web即完成struts2的filter以及struts.xml文件的相关配置需要为工程添加action在struts.xml中进行相关配置。2).Hibernate配置a.用过Myeclipse的为工程添加HibernateCapabilities,不添加Hibernate.cfg.xml文件,也不需要HibernateSessionFactory(后面和Spring集成,不需要这个配置文件了)。b.通过HibernateReverseEngineering生成Hibernate与数据库的映射文件以及Model。3).Spring配置a.同样为工程添加SpringCapabilities,在web.xml添加context-param传递参数contextConfigLocation把值设置为Spring的配置文件地址。同时设置Spring的listener如下图完成配置后工程结构如下图:在包cn.edu.cuit.dida.miniblog.hibernate下面存放Hibernate的映射文件在包cn.edu.cuit.dida.miniblog.spring存放Spring的DI相关的配置信息在包config.spring包中配置了数据源以及SessionFactory的信息3.功能实现的主要代码1).JS用户好友微博信息实时刷新/***ajax加载好友的微博信息*/functionloadFriendsBlogs(){……friendsBlogInterval=window.setInterval(function(){$.ajax({type:POST,url:user/Blog_getFriendsNewBlogs?format=json&showedCount=0&requestCount=10&beginDate=+beginDate,success:function(result){beginDate=result[updateDate];if(result[blogs].length0){for(vari=0,l=result[blogs].length;il;i++){if(result[blogs][i][type]==1){$(#friends-blog-user-success).html(……);}else{$(#friends-blog-user-success).html(……);}}$(#friends-blog-loading-faild).hide();$(#friends-blog-user-success).show();}}});},10000);//定时每10s访问服务器请求用户好友更新微博信息……}2).服务器端查询出用户新发布微博关键代码五、设计经验总结1.对框架使用的体会在web开发过程中使用了框架,更能专注于业务逻辑的开发。在我对框架的使用中,对使用Struts2好处的体会颇深,以前用servlet写web程序时候,接收参数是一个比较麻烦的问题,乱码的问题,让你不得不去处理各种原因引起的乱码,同时对参数的接收也不得不去写request.getParameter……这样繁琐的方法,有了Struts2只需要给对应的Action中提供对应属性的setter,struts2即可自动为我们完成参数的赋值。再说使用Hibernate,Hibernate作为持久层的一个优秀的框架,完成了数据库到java对象的映射,之前自己通过JDBC连接数据库,写Sql语句是很繁琐的事情,现在在Hibernate下面变得非常简单。最后Spring,以前没使用Spring的时候没怎么体会到Spring的好处,说实话现在用了Spring也没在我的这个小项目中体会到他的优势,在SSH整合中Action的实例化由Spring容器来管理了,而Spring对Action的管理成为了单例模式,所以以前我在使用Struts2的习惯在整合了Spring后遇到了点不是很方便的问题,没具体去测试Spring管理的Action是对和用户单个Session是一个单例还是对所有的用户都是一个单例。总的来说SSH给web开发带来了很多方便的地方,学习框架,主要应该是体会设计的思想,升入理解MVC模式。在使用框架过程中,框架在给我们的使用带来方便的同时也带来了一些陷阱。2.代码实现和调试经验总结Spring对Action的管理是采用的单例模式,之前刚编写代码的时候对这个模式的不够了解,让我在Action对一个在之前被赋值为null的变量老是出现nullpointer异常信息。3.设计不足总结在设计中仅对用户好友的广播实行是实时刷新,未对用户粉丝列表做实时刷新的实现。
本文标题:J2EE程序设计――课程设计报告
链接地址:https://www.777doc.com/doc-5097814 .html