计算机毕业设计 jsp个人助手软件ssh 毕设

本文详细介绍了个人助手应用中的日常查询及用户管理模块,包括框架结构设计(Spring+Struts2+Hibernate),用户登录验证、密码修改、万年历、身份证查询、邮政编码、长途区号和手机号码归属地的功能实现及其设计思想。
摘要由CSDN通过智能技术生成

演示视频:


https://www.bilibili.com/video/BV115411e7rM/

第五章  日常查询及用户管理模块概要设计

5.1  框架结构设计

5.1.1  框架图

1f2afbb5e5c96fcb5d209c3023dfd646.jpeg

5.1.2  框架介绍

开发使用框架为spring+struts2+hibernate,规则为cn下面为以各个模块命名的包,里面分为action,model和service三层。

Spring是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

根目录下spring.xml为spring主配置文件,config/spring下为各模块分配置文件。

Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。当Web容器收到 请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器,然后经过Other filters(SiteMesh ,etc),接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求那个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N) 一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面,之后拦截器(Interceptor N)会在被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和(核心控制器)(FilterDispatcher)。

根目录下struts.xml为struts2的主配置文件,config/struts下为各模块分配置文件。

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,目前来说应该无人能出其右。从功能上来说,JPA现在就是Hibernate功能的一个子集。Hibernate 从3.2开始,就开始兼容JPA。

根目录下sql.properties为数据库配置信息。

5.2  用户登录

个人助手的很多信息都是与用户关联的,在使用软件前必须要登录,这样才可以看到属于自己的信息。

5.2.1  流程图

0408b8374b335fb2b86934ba3d47a427.jpeg

5.2.2  时序图

687c4c7de8a3bb5074d520883091f484.jpeg

5.2.3  设计思想

个人助手的许多信息与用户相关,所以用户登录后,用户信息要伴随整个使用软件过程,以便用户只能查看属于自己的信息。在用户名密码验证通过后可以把用户的信息放入session,使密码保管箱,通讯录等相关功能绝对安全,这样可以保证用户能看到自己的信息,又不会看到他人的信息。

5.2.4  效果展示

登录界面。

065f81b26e8b44bf8667be1bb24e2386.jpeg

用户输入用户名,密码,验证码后,程序进入后台验证,通过与数据库中用户注册信息进行比对,符合则登录成功,否则禁止登录。

5.3  修改密码

用户可以修改自己的登录密码。

5.3.1  流程图

9598a020e0817bdf16b172e71dffaa8f.jpeg

5.3.2  时序图

58b2c764943b96c69ab734065b61fb5a.jpeg

5.3.3  设计思想

用户要想修改密码,必须知道原密码,以防止他人随意修改。这样在修改之前就要输入原密码,但用户的登录密码是经过MD5加密的,用户输入的原密码是明文,要想进行比对就只有把用户输入的原密码也进行MD5加密,比较加密后的数据是否一致,以确定输入的原密码正不正确。

486fe69b84545d345975cddb95807a0c.jpeg

5.3.4  效果展示

登录后点击主页面左上方的88b48e84bd8fecd103eaf38648f328c3.jpeg,进入密码修改页面,

d2199958deacdd00aa3c1a04974abe01.jpeg

输入正确的信息后保存即可,输入错误会有相应的提示。

313314090cb0a8bb1bbed416a1ad864b.jpeg

5.4  万年历

万年历就是记录一定时间范围内的具体阳历或阴历的日期的年历,方便有需要的人查询使用 

5.4.1  设计思想

有很多免费的万年历js插件,可以把这些插件引入到项目中。

5.4.2  效果展示

点击左侧树的“万年历”,进入万年历查询页面,

a38c662425406c0c581bf4b8e3a8d6d9.jpeg

在选择框中可以选择不同的年份和月份,鼠标放在相应的日子数字上,会有提示信息。

ec3242e019fc453b2b379f7495b01fc7.jpeg

5.5  身份证

身份证是用于证明持有人身份的证件,多由各国或地区政府发行予公民。身份证查询主要提供公民的发证机关所在地,生日和性别信息。

5.5.1  流程图

516af02ffc0eba0cd22a785018f0e6b1.jpeg

5.5.2  时序图

a036070d406e7798db3f3f9aa4a76c62.jpeg

5.5.3  设计思想

根据身份证编码规则,生日和性别都可以直接得到,但所在地就需要数据的支持,所以需要建一张身份证前六位数字与地域的信息表,

ed2a99caf2361e79f10f2c61d91adbf9.jpeg

icode为身份证前六位数字,iname是对应的地域名称

5.5.4  效果展示

点击左侧树的“身份证”,进入身份证信息查询页面,

5b666a26737cb802df23dcab48100df7.jpeg

输入正确的身份证号码即可查询出相关的信息,

237da2357d2bdd5ecfc73f1a03221ac3.jpeg

5.6  邮政编码

邮政编码是用阿拉伯数字组成,代表投递邮件的邮局的一种专用代号,也是这个局投递范围内的居民和单位通信的代号。

5.6.1  流程图

ec2bec68400db5acdb88ee7f4723f6ad.jpeg

5.6.2  时序图

f6701fb8fc4545ec5bc7816bf2945dee.jpeg

5.6.3  设计思想

邮政编码是固定的地域编码,所以需要建一张邮政编码与地域的信息表,

b78d261c1b8aa8466fc4675d735f362b.jpeg

Postname地域名称,postcode是对应的邮政编码。

5.6.4  效果展示

点击左侧树的“邮政编码”,进入邮政编码查询页面,

4e9eee089045348c0679ddf61e5c488e.jpeg

可以通过地域查询邮政编码,也可以通过邮政编码查询地域。左侧输入框是通过地域查询邮政编码,结果在其下面显示,

c460fb81166c1b2300556ee6818ee9b0.jpeg

右侧输入框是通过邮政编码查询地域,结果在其下面显示,

d81b60130c6db47b8fa9058b6b0e23a2.jpeg

5.7  长途区号

长途区号就是长途电话需要拨打的地域号码。

5.7.1  流程图

56df64a3f0e971a0f5bf311c8d6ef28e.jpeg

5.7.2  时序图

831de8a81d39361d0b5997117ac6d706.jpeg

5.7.3  设计思想

长途区号是固定的,所以需要建一张长途区号与地域的信息表,

412c99a21bd86835bf89f69471c65f27.jpeg

areaname地域名称,areacode是对应的长途区号。

5.7.4  效果展示

点击左侧树的“长途区号”,进入长途区号查询页面,

1c05df51656185fd0f5f20ba00b0e4d4.jpeg

此功能与邮政编码一样可进行双向查询。

3f7be488e5137e51aa931e451a09f4de.jpeg

5.8  手机号码归属地

手机号码的编码规则详见4.2。

5.8.1  流程图

b12da51781c1c4d4a86654f03c85aadc.jpeg

5.8.2  时序图

1561c0aee2acfbb333e451f353e28304.jpeg

5.8.3  设计思想

根据手机号码的编码规则,需要建一张查询信息表,

9df48d5d65e14ee554c855b2948e46ff.jpeg

Mnum是手机号码前7位,mcity是对应的归属地,msort是对应的运营商类别。

5.8.4  效果展示

点击左侧树的“手机号码归属地”,进入到查询页面,

521d640ff1a61c22688730aa3b24851e.jpeg

输入正确的手机号,可进行查询。

06e4e47c8d6cbe2e6685ce2f523593a5.jpeg



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值