j2ee是当前建立和开发各种web应用的主流平台,本文针对在系统中用户登录存在的问题,提出了改进方案,详细描述了系统工作 原理 ,并针对具体业务,给出实现的具体内容,为在j2ee环境下实现统一认证、集中式的系统 管理 与权限管理体系提供了可行方案。
关键词 j2ee;web应用;登录;
引言
为改变传统的登录方式,方便用户充分利用 网络 资源,我们改进了用户登录的方式,建立了用户帐户认证中心系统,负责管理对所有的用户建立网络用户登录标识的各种资料,管理登录和注销过程。用户只需一次登录,就可以访问其拥有的权限和资源,极大地方便了用户的使用,提高了系统资源的利用效益。
基于j2ee用户登录的设计
系统采用多层(n-tier)开发模式,基本构架如图1所示。系统基本构架总体上分为四层:系统平台层、服务层和应用层,在服务层和系统平台层之间构架系统的数据层,使得系统数据独立、 安全 。
图1 系统基本框架图
系统平台采用j2ee标准,基于j2ee标准开发的应用可以跨平台地移植,并提供了 企业 计算中需要的各种服务;j2ee中多数标准定义了接口,例如jndi, jdbc等,因此可以和许多厂商的产品配合,容易得到广泛的支持;j2ee树立了一个广泛而通用的标准,大大简化了应用开发和部署过程。操作系统可以使用基于ms windows 、或者unix、lunix等操作系统。
在系统平台层之上是系统的数据层,数据库可以使用xml。xml具有良好的可扩展性,语言简单有效,可自行定义标记;内容与形式的分离,主要刻画数据内容,不考虑显示效果;有严格的语法要求,便于分析统一和与数据库信息转换;便于传输,为纯文本形式,可通过http协议直接传输,可跨越防火墙等等。系统还可以采用oracle、ms sql server、db2、mysql等其他数据库。
在系统平台层和数据层的支持下,系统通过服务层来对整个平台提供服务。提供应用的支持和标准化的应用接口。用户认证中心就建立在服务层,给每一个用户一个建立用户标识,并负责对每一个登录客户进行系统认证。
在服务层之上系统构架了应用层。应用层包括单位各种综合应用,如指挥自动化网、政治工作宣传网、财务网等。由于系统提供标准化接口,因此,单位内部现在已有的应用系统和以后开发的应用只要使用标准化接口,就可以方便、无缝地构架在系统平台应用中。
整个这个多层次结构组成了的系统的整体,通过多层次的结构应用,系统的扩展性和灵活性都得以保证,并且具有了更广阔的适用性。
基于j2ee用户登录实现
1、系统实现 原理
用户在访问系统组件中的任何一个页面,系统都会转到登录界面,在用户登录后,系统会自动转会到客户上次请求的页面。并且用户此后可以在系统中无缝切换,不需要再次进行登录,实现了一站式登录。系统用户登录实现原理如图2所示。
图2 系统用户登录实现图
系统实现步骤如下:
⑴ 用户访问应用系统。
⑵ 应用系统如果 检查 到用户没有在自己的服务器登录,则将用户请求重定向到用户认证中心上。
⑶ 用户认证中心验证用户的实时状态,如果用户没有登录,则自动转向认证中心的用户登录界面。如果已经登录,将用户标识及用户令牌,重定向回应用系统。
⑷ 用户认证中心验证用户身份后,生成用户令牌,重定向回应用系统。
⑸ 应用系统接收统一格式的用户令牌,取得用户在本系统上的登录账号,将用户在本系统上状态置为登录,返回用户请求访问的页面。
⑹ 如果用户在访问应用系统之前已经在应用系统登录服务器上登录过,第二步到第五步对用户来说就是透明的,用户感觉只是向应用系统发出了访问请求,然后得到了正确的页面反馈。
从上面的流程,我们可以知道,不管用户访问哪个应用系统,用户只需要一次登录,就保证用户在整个系统中的状态都是在线的,不再需要进行第二次登录。
2、系统实现关键代码
系统定义了三个session变量:
userid:标识用户身份;
pass:标识用户即时状态;
url:保存了上次请求的页面,以保证在用户登录后能转到用户请求的页面。
初始化时:
protected void init()
{
session.add("userid", 0);
session.add("pass", false);
session.add("url", "");
}
对于验证过程,首先将传递过来的参数保存到session中。如果用户没有登录,则转到login.jsp页面进行登录。如果用户已经登录了。则将用户标识和用户令牌重定向到应用系统访问页面。
private void validate()
{
bool pass = (bool)session["pass"];
if ((request. getstring ["url"] != null) && (request.getstring["url "] != ""))
{
session["url "] = request.getstring["url "];
}
if (pass)
{
string userid = session["userid"].tostring();
string url = session["url "].tostring();
response.redirect(url+"/apppage.jsp?userid=" + userid + "&pass=true);
}
else
{
response.redirect("login.jsp")
}
}
结束语
我们已经完成了本文所阐述采用改进的用户登录系统在j2ee体系下的实现,并成功应用到多个的web应用系统中,实践证明,该登录系统具有以下几个特点:
⑴ 具备无缝连接功能。能够尽可能地利用现有系统的身份认证模块以及现有的用户设置和权限设置,尽量保护现有的投资,减少重新的用户设置和权限设置的费用,同时避免对现有系统进行大规模的修改。
⑵ 具有良好的扩展性。不仅能支持现有的应用系统及其现有的用户系统,当开发和部署新的应用组件时,这个系统服务可以作为它的身份认证模块的形式工作,也就是说,新的组件应用可以通过集成该服务的形式来实现等价的功能,不必再设计用户系统,。
⑶ 具备灵活的使用模式。此系统 管理 为用户提供多种登录手段,包括传统的口令登录或者配发用户身份卡,用户可以通过多种方式自由地使用该系统服务。为了提高系统 安全 性,又节约费用,我们采用usb存储设备,将个人的信息存储其中,进行登录认证,取得了良好的效果。
相关推荐
在构建J2EE应用时,架构工程师通常会使用到J2EE的基本部分——Servlet。如果架构师不使用Session Beans, Entity Beans, 或 Message Beans, 那么改进性能的方法就很少。只能采用增加CPU或更多的物理服务器等方法。EJB...
基于DWR框架的WEB应用的设计与实现.pdf 基于DWR框架的教学管理系统设计与实现.pdf 基于DWR的AJAX技术研究与实现.pdf 基于J2EE技术的办公自动化系统研究.pdf 基于J2EE的二手图书商务网站的开发.pdf 基于J2EE的电子...
基于Java-web停车场管理系统的设计与实现 基于Java-web停车场管理系统的设计与实现全文共22页,当前为第1页。基于Java-web停车场管理系统的设计与实现全文共22页,当前为第1页。 基于Java-web停车场管理系统的设计与...
如何正确应用J2EE核心技术来设计和构建一个强健的,具有伸缩性的、可重用的WEB应用体系架构是我们所面临的挑战。 MVC模式是软件工程学中一个非常重要的设计模式,为交互式系统提供了一个非常优秀的开发模型。MVC模式...
3 2系统设计原则 4 2.1先进性和规范化原则 4 2.2高度的兼容性和可移植性 4 2.3人性化、使用性 4 3设计思路 5 3.1采用基于J2EE的体系结构 5 3.2采用标准组件实现绩效考核数据的导入导出 6 3.3绩效考核数据的存储方式 ...
例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;...
2.设计模式是比 J2EE 等框架软件更小的体系结构,J2EE 中许多具体程序都是应用设计模式来完成的,当你深入到 J2EE 的内 部代码研究时,这点尤其明显,因此,如果你不具备设计模式的基础知识(GoF 的设计模式),你很难...
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...
摘要:.NETPetShop3.x...根据用.NET实现的SunJ2EE最佳实践示例应用程序,各方面的客户可以直接地对Microsoft的.NET技术与基于J2EE的应用程序服务器进行比较,同时了解构建基于Web的应用程序中用到的各种建议的设计模式
例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;...
改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强...
鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...
2.x的一项重大改进是使用LDAP作为中央配置,符合指定的DICOM应用程序配置管理配置文件。 从长远来看,5.x将提供2.x的功能,并且将有迁移工具将2.x的现有安装升级到5.x。建造确保已安装 。 构建master分支-仅用于...
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。 19、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 如果数据将在线程间共享。例如正在写的数据以后可能...
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of ...
接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它...
application或者applet中与servlet/jsp通信可以采用的方式。 31.简述逻辑操作(如&,|)与条件操作(如&&,||)的区别。 32.简述 Java Server Page 和 Servlet 的联系和区别。 33.简述synchronized和java.util....
例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在...
它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,...