首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

在Gwt中应用已有的开源验证码

2012-11-23 
在Gwt中使用已有的开源验证码在web系统中,验证码已经是我们不可或缺的一部分了!在项目中我可以自己实现一

在Gwt中使用已有的开源验证码
    在web系统中,验证码已经是我们不可或缺的一部分了!在项目中我可以自己实现一个验证码的生成以及校验逻辑,也可以使用已有的开源验证码类库。我在开发Gwt的过程中,遇到了需要注册页面需要验证码的需求,接触过Jcaptcha和Patchca和两个验证码类库。
    通常验证码的生成以及有效性验证都是放在后台实现,因为这样才是安全的。在Java中使用servlet来完成验证码的生成和校验,同样在Gwt中也是这样的。关于Gwt有一点是要牢记的,那就是在Gwt中后台的代码编译后的代码就是Java字节码,因此对于Gwt中后台的可以完全使用Java自己的所有类库,因此当然它可以使用JavaEE的servlet,而前台使用的类库则是有限的。
    在jsp中后台通过servlet生成了验证码之后,然后配置后serlvet的映射,在jsp视图中展示验证码的地方加入这个serlvet的路径即可。Gwt中同样如此,只不过在前视图中把生成验证码的servlet映射路径放在能展示验证码的控件上。
    而对于有效性的校验,在jsp中后台通过servlet实现验证码校验的逻辑,在校验逻辑的实现当中是通过request和response来获取输入的验证并作出相应的。由于jsp在于后台的数据的交换过程中是通过表单提交等一系列的操作完成,而Gwt中后台与前台数据交换都是通过方法调用以及rpc通信过程中来传递参数的。所以后台校验逻辑基本相同,数据传递的过程中有些差别。
下面是Patchaca验证码类库生成验证码的代码:

    Boolean isResponseCorrect = Boolean.FALSE;    HttpServletRequest httpServletRequest = this.getThreadLocalRequest();        // remenber that we need an id to validate!    String captchaId = httpServletRequest.getSession().getId();        // Call the Service method    try {      isResponseCorrect = CaptchaServiceSingleton.getInstance().validateResponseForID(captchaId, response);    } catch (CaptchaServiceException e) {       Log.error("验证码验证服务异常!");    }

热点排行