
基于JSP的Web邮箱开发与设计.doc
17页基于JSP的Web邮箱开发与设计引 论 互联网的井喷式发展,让生活在这个时代的人们处处能感受到互联网的便利之处互联网将人们的沟通方式从时间上,空间上无限缩小,拉近彼此之间的距离电子邮箱就是拉近彼此之间间隔的方式之一,它能够让企业交换意见,好友之间也可以不论何时都可以向对方发送邮件来联络感情,并且能让对方及时收到信息,不会再像古代那样收一封信需要等待漫长的几天甚至几个月甚至还有遗失的风险,而如今有了电子邮箱可以在一秒之间安全稳定的到达对方,使得交流内容能够及时传送到对方的手中从这点可以看出web邮箱对于当今的联网时代有着举足轻重的重要作用本文就利用当今企业流行的一些技术如SSH框架,jsp页面技术,css+div技术等来实现简单的web邮箱系统 这次系统开发主要采用的技术是JSP、SSH三大框架、jQuery、javascript、css+div、Ajax首先介绍一下这些技术1.1 JSP动态网页技术 JSP是java在服务器上面的一种动态页面,它算是对于servlet的一种简单化设计,在它的页面中可以添加java代码它主要在服务器上执行代码,可以对数据进行操作并且跳转页面,处理完之后页面接收的是它处理过之后的结果,仅仅是接收数据库处理的结果,也就减轻了客户端浏览器的负担,所以就算本地的电脑不支持java只要有浏览器照样可以访问jsp页面,因此,jsp是具有跨平台性的一门语言。
1.2 SSH三大框架技术 SSH分别是spring+struts+hibernate 如今企业J2EE软件开发流程基本上都是将项目进行分层搭建系统框架,利用SSH框架就类似于MVC(model,view,control)模式进行分层开发这样来降低模块之间的耦合性,很好的遵循了Java开发的原则高内聚低耦合 其中Struts是主要负责表示层也就是视图的,主要通过Struts进行处理表现层数据的传递和页面的跳转;它自身同样是个MVC 框架,可以处理前台页面和后台数据,将页面和后台分开,达到解耦的效果,方便了对系统的维护,以及对系统进行扩展工作,另外代码的重用性也得到了体现 Hibernate是对数据库进行封装操作的一种框架它主要是对数据库以及java代码中的对象进行一个映射操作,让代码执行的时候,操作数据会根据映射关系自动去执行相应的操作,让操作变的更加简单Hibernate包含了数据库的最常用的操作包含用户对数据的查询,添加数据,更新数据,以及删除数据等操作,使得在编写代码的时候不必去费尽心思去写底层的数据库操作了,大大提高了代码开发的速度Spring 是企业最为流行的一种轻量级框架,最为重要的部分就是控制反转IOC,它是利用外部产生的一种容器来进行控制不同组件间的联系,相比于之前的同过代码来进行控制,它的耦合性更低,实现了控制的反转。
另外一个重要的部分就是依赖注入机制,它通过设值进行注入以及在构造方法中来表现依赖的机制Spring在SSH框架中主要负责的是逻辑层,实现对struts的调用来进行对页面操作,然后通过调用hibernate对数据库进行操作然后将数据库操作的结果返回给struts控制的表现层将结果显示给用户1.3 jQuery和JavaScript JavaScript 是一种相对于其他网络语言安全性相对较高的脚本语言,页面上的图片动态效果,鼠标事件等都是通过javascript进行触发并且控制实现的,它是通过对一个对象添加相应的事件来实现功能的它是一种动态,弱类型,基于原型的语言而jQuery是JavaScript的一个轻量级类库,主要封装了一些javascript的一些方法,能够响应常见的时间,以及实现动画效果等,同样也方便地提供了Ajax与服务器之间进行沟通实现的方法所以JavaScript是基本框架而jQuery是对其的扩展,让网页显示的效果更丰富1.4 Ajax技术 Ajax的核心是js 通过对xml的对象操作来体现传输数据的传送它是支持异步请求的一种技术,异步请求也就是可以向服务器踢出请求并且同事处理响应,不需要等待请求或者响应结束之后才进行下一步操作,进而达到局部数据操作的目的,也就是我们目前在浏览器经常看到到一种局部刷新的技术。
2.1 系统功能需求 个人信息维护 个人信息包含:用户名、密码、默认邮箱主要包括用户登陆和用户注册两大功能在登陆的时候必须将用户名,密码以及验证码填写完整并且只有所有信息都填写正确之后才能从数据库中获知登录用户是否合法,如果不合法将提示错误信息,合法登陆用户可以跳转到主页 用户注册是需要用户填写用户名,密码,邮箱别名,邮箱账号,邮箱密码,POP3地址和SMTP地址,以及选择是否在服务器备份等信息然后点击提交,将用户添加到数据库中 用户邮件管理 邮件含有:id,邮件消息ID,邮件主题,发送邮箱地址,接收者邮箱地址,抄送邮件地址,密送邮件地址,邮件内容,是否为html格式邮件,邮件发送日期,有件是否已读,邮件是否紧急,邮件是否需要回复,邮件类型,邮件保存时间,邮件所属用户ID,邮件所属邮件服务器ID,邮件附件等字段名 主要完成了发送邮件,收取邮件,阅读邮件内容,删除邮件信息等功能 发送邮件:按照格式填写邮件内容,可以添加附件和要求回执或者紧急信件,点击发送之后数据库中将增加一条发送的邮件记录保存在本地磁盘上收取邮件:点击收取邮件后,页面会刷新显示最新的未读邮件读取邮件:点击选中收件箱里面需要阅读的邮件,能够打开邮件进行读取选中的邮件的内容。
删除邮件:选中需要删除的邮件之后点击删除邮件可以将邮件放入到回收站,如果要彻底删除,点击彻底删除按钮就可以讲邮件彻底删除3.系统流程图 整个系统的流程图如下图3-1首先进入登录首页,输入账号密码和验证码进行用户验证,验证失败则需要点击注册跳转到注册页面填写信息进行注册,注册成功后会跳转到登录页面进行登陆验证成功后登陆会进入到邮箱首页,左侧栏有写信,收件箱,发件箱,草稿箱和回收站点击写信可以填写信件详细内容,然后点击发送邮件,将邮件发送出去,发送失败时候会将邮件保存到草稿箱中;发送成功后会将邮件备份一份到发件箱中;若将邮件永久删除,则直接永久删除;若是将邮件放入到回收站,那么可以将邮件还原 3-1系统流程图4.数据库设计4.1 数据库E-R图 数据库设计是根据前期的需求分析和功能分析之后才进行设计的,采纳的是MySQL中小型数据库,通过navicat for MySql可视化工具对数据库执行相关数据操作图4-1是数据总体E-R图 图4-1 数据E-R图 以下是本次系统设计的数据逻辑结构设计:4.2 用户表(sys_user) 表4-1用户表字段名称数据类型备注关键字段IDvarchar用户ID主键(PK)usernamevarchar用户名passwordvarchar密码Default_domainvarchar默认邮箱4.3 服务器表(domain)表4-2 服务器表字段名称数据类型备注关键字段idvarchar邮箱唯一标示符主键Namevarchar服务器名字Login_namevarchar登陆用户名Login_passwordvarchar用户密码Pop3_servervarcharPop3服务器Smtp_servervarcharSmtp服务器Keep_copyvarchar备份User_idvarchar用户id4.4 邮件表(mail) 表4-3 邮件表字段名称数据类型备注关键字段idvarchar唯一标示符主键Msg_idvarchar邮件消息IDSubjectvarchar邮件主题Mail_fromvarchar发送者邮件地址Mail_tovarchar接收者邮件地址Ccvarchar抄送邮件地址 Bccvarchar密送邮件地址Contentvarchar 邮件内容Send_dateDatetime邮件发送日期Save_timeDatetime邮件保存时间Is_readvarchar是否已读Is_htmlvarchar是否是html格式Is_emergentvarchar邮件是否紧急Is_need_receiptvarchar邮件是否需要回复Mail_typevarchar邮件类型User_idvarchar邮件归属人Domain_idvarchar邮件所属邮件服务器IDAttachmentvarchar邮件附件Attachment_namevarchar邮件附件名称详细设计就是对于各个功能的详细实现,实现各模块的功能。
5.1 界面设计 软件的作用就是服务用户的,而软件与用户之间的交互就是通过友好的界面来进行的 登陆界面 5-1 邮箱登陆界面 注册页面 5-2 邮箱注册界面 邮箱首页 5-3 邮箱首页界面 写信页面 5-4 邮箱写邮件界面 收件箱界面 5-5 邮箱收件箱界面 发件箱 5-6 邮件发件箱界面草稿箱界面 5-7 邮箱草稿箱界面 回收站 5-8 邮箱回收站界面系统实现 系统实现是在界面完成之后,数据库的表已经建立以及功能的大概设计都完成的基础上进行的工作将计划实现的功能通过代码详细实现 三大框架环境配置 在利用SSH框架进行开发项目之前,首先需要配置一下项目运行的环境,然后才能进行开发引入jar包和配置文件 Struts --添加Struts和jstl的核心包 --创建 --提供国际化支持,提供国际化资源文件 Spring --添加Spring的依赖包 --log4j --aspecrj --spring -- --编写 Hibernate --添加Hibernate的核心包 -- --hibernate-3.2\lib目录下的全部jar --数据库连接jar(mysql-connector-java--bin.jar、classes12.jar) -编写 Hibernate配置file5.2.2 登陆功能实现 登陆功能包含了三个录入信息:登陆用户名,登陆密码,登陆验证码; 首先是通过用户登陆时录入的用户名和登陆密码来查询数据库中用户的信息,看用户是否为合法用户,但是在进行查询数据库之前会先进行验证码进行验证用户是否是恶意登陆,只有验证码通过之后才能进行登陆验证。
只有用户验证通过之后才能登陆进入邮箱首页,都则都会返回当前登陆页面 其中在JSP页面中利用javascript的事件来首先判断用户输入的信息是否正确,例如下面的例子:首先是录入登陆密码,然后点击登陆按钮,出发JS事件进行判断将判断过后正确的数据通过jQuery中封装的Ajax方法传到后台中,在后台通过相。
