登录站点

用户名

密码

富浏览器程序设计实例 -页面控制 - 登录与验证码

14已有 8667 次阅读  2013-11-28 10:34   标签验证码,RIA 



这篇介绍是作为富浏览器程序设计实例前面博客的补充。
页面效果如下:



登录与验证涉及8个文件,罗列如下:
login.js
checkCode.css
LoginAction.java
LoginService.java
LoginServiceImpl.java
LoginDao.java
LoginDaoImpl.java
User.java

        在登录的模块中首先应当验证验证码的正确性,然后在查阅数据库内容。如果仅仅是简单的登录验证,实际上和Session并没有关系,但是如果你要控制页面,不让他随便跳转,这就和Session有关了。举例来说:登录页是login.jsp,登录完成,借助struts你会跳转到对应的页面。但是如果你直接在地址栏输入你要去的页面,你可以直接进入。这在很多系统中是不允许的。为了达到这个目的,我们需要对页面进行拦截和过滤,Servlet中提供了一个类是Filter类,专门做这件事。在这里先介绍登录与验证的实现方法,过滤的功能 将在《页面Filter拦截与过滤》介绍,因为有些可写的。这篇文章是对《SSH2+ExtJS4.2.1+MySql示例程序》系列博客的完善,在这篇博客中提供的源代码也将更新,但源地址连接会保留。新的源代码中将会增加对登录、验证和页面拦截与过滤的功能。
       针对源代码在CSDN中的积分设置仍然是20分,分成两个压缩包,每个10分。这样设置的原因是:1.CSDN初始20分,如果你只是个伸手党,没有开源精神,不做贡献,你的CSDN积分肯定不够20分,那么资源不会分享给你;2.下载资源,评论下,系统会返还你的积分,也就是说对你并没有损失;3.作者耗费精力从无到有,算是另一种收获吧。


在login()方法中
ajaxJson()方法是向服务器发送消息的

  1.     /** 
  2.      * trim()方法用于去除空格 
  3.      * 1. 判断验证码正确性 
  4.      * 2. 判断用户名在数据库中是否存在 
  5.      * 3. 判断密码是否正确 
  6.      */  
  7.     public void login()  
  8.     {  
  9.         String msg = "";  
  10.   
  11.         // 判断验证码正确性  
  12.         String actionCheckCode = (String) ActionContext.getContext().getSession().get("getRandomNum");  
  13.         if ( !pageCheckCode.equals(actionCheckCode) )  
  14.         {  
  15.             msg = "{success:false,failMessage:'验证码有误'}";  
  16.         }  
  17.         else  
  18.         {  
  19.             try  
  20.             {  
  21.                 // 判断用