当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 摘要在一个有密码保护的Web应用中,正确处理用户退出过程并不仅仅只需调用HttpSession的invalidate()方法。
 

 

    摘要:在对数据库的操作时,有时要用一个子线程来进行后台的数据操作。比如说数据备份,转档什么的。在主窗口还能同是进行其它操作。而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上(可视),同时进行日志处理等。我用的是下面的方法:[1]用到的api函数:registerwindowsmessage----------------------函数功能:该函数定义一个新的窗口消息,......
    摘要: 数据库访问是软件开发过程中经常用到的,ado方法访问数据库是现在windows平台开发软件经常用到的方法,但是在ado组件中,使用com调用的时候,经常会出现各种异常,异常处理在开发过程中如果处理不当,经常会导致程序无法正常工作甚至崩溃。本人在开发软件过程中,对ado方法进行了封装,把com异常吸收在类的内部,这样引用的时候就不必考虑异常处理,使开发过程简单化。本次封装,没有支持全部的方法,只是......


正确优雅地解决用户退出——JSP及Struts解决方案
摘要

【程序编程相关:Comparisions

【推荐阅读:Extened Precision Ar

      在一个有密码保护的web应用中,正确处理用户退出过程并不仅仅只需调用httpsession的invalidate()方法.现在大部分浏览器上都有后退与前进按钮,允许用户后退或前进到一个页面.如果在用户在退出一个web应用后按了后退按钮浏览器把缓存中的页面呈现给用户,这会使用户产生疑惑,他们会开始担心他们的个人数据是否安全.许多web应用强迫用户退出时关闭整个浏览器,这样,用户就无法点击后退按钮了.还有一些使用javascript,但在某些客户端浏览器这却不一定起作用.这些解决方案都很笨拙且不能保证在任一情况下100%有效,同时,它也要求用户有一定的操作经验. 【扩展信息:Three view points of

    这篇文章以示例阐述了正确解决用户退出问题的方案.作者kevin le首先描述了一个密码保护web应用,然后以示例程序解释问题如何产生并讨论解决问题的方案.文章虽然是针对jsp页面进行阐述,但作者所阐述的概念很容易理解切能够为其他web技术所采用.最后作者展示了如何用jakarta struts优雅地解决这一问题.

      大部分web应用不会包含象银行账户或信用卡资料那样机密的信息,但一旦涉及到敏感数据,我们就需要提供一类密码保护机制.举例来说,一个工厂中工人通过web访问他们的时间安排.进入他们的训练课程以及查看他们的薪金等等.此时应用ssl(secure socket layer)有点杀鸡用牛刀的感觉,但不可否认,我们又必须为这些应用提供密码保护,否则,工人(也就是web应用的使用者)可以窥探到工厂中其他雇员的私人机密信息.

    与上述情形相似的还有位处图书馆.医院等公共场所的计算机.在这些地方,许多用户共同使用几台计算机,此时保护用户的个人数据就显得至关重要.设计良好编写优秀的应用对用户专业知识的要求少之又少.

    我们来看一下现实世界中一个完美的web应用是如何表现的:一个用户通过浏览器访问一个页面.web应用展现一个登陆页面要求用户输入有效的验证信息.用户输入了用户名与密码.此时我们假设用户提供的身份验证信息是正确的,经过了验证过程,web应用允许用户浏览他有权访问的区域.用户想退出时,点击退出按钮,web应用要求用户确认他是否则真的需要退出,如果用户确定退出,session结束,web应用重新定位到登陆页面.用户可以放心的离开而不用担心他的信息会泄露.另一个用户坐到了同一台电脑前,他点击后退按钮,web应用不应该出现上一个用户访问过的任何一个页面.事实上,web应用在第二个用户提供正确的验证信息之前应当一直停留在登陆页面上.

    通过示例程序,文章向您阐述了如何在一个web应用中实现这一功能.

jsp示例

      为了更为有效地阐述实现方案,本文将从展示一个示例应用logoutsamplejsp1中碰到的问题开始.这个示例代表了许多没有正确解决退出过程的web应用.logoutsamplejsp1包含了下述jsp页面:login.jsp, home.jsp, secure1.jsp, secure2.jsp, logout.jsp, loginaction.jsp, and logoutaction.jsp.其中页面home.jsp, secure1.jsp, secure2.jsp, 与logout.jsp是不允许未经认证的用户访问的,也就是说,这些页面包含了重要信息,在用户登陆之前或者退出之后都不应该出现在浏览器中.login.jsp包含了用于用户输入用户名与密码的form.logout.jsp页包含了要求用户确认是否退出的form.loginaction.jsp与logoutaction.jsp作为控制器分别包含了登陆与退出代码.

    第二个示例应用logoutsamplejsp2展示了如何解决示例logoutsamplejsp1中的问题.然而,第二个应用自身也是有疑问的.在特定的情况下,退出问题还是会出现.

    第三个示例应用logoutsamplejsp3在第二个示例上进行了改进,比较完善地解决了退出问题.

    最后一个示例logoutsamplestruts展示了struts如何优美地解决登陆问题.

    注意:本文所附示例在最新版本的microsoft internet explorer (ie), netscape navigator, mozilla, firefox与avant浏览器上测试通过.

login action


...   下一页
    摘要:3. dbconnection.h#pragma once #include <comutil.h>#pragma comment(lib,"comsupp.lib") class cdbconnectionimpl ;class cdbrecordset ; class afx_ext_class cdbconnection{ friend class cd......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE