做注册的时候,可以通过Dwr框架的无刷新验证用户名是否存在,但在做验证‘验证码’是否正确的时候遇到一个难题,在普通类里面不知道怎么获取HttpSession对象,自然就没办法把存放在HttpSession对象中的验证码拿出来比较了。
问下大家是怎么做到在客户端那边通过无刷新来验证‘验证码’是否正确的。

解决方案 »

  1.   

    Action也是普通类...........让ACTION先获取SESSION后你在放入........教给spring管理的Action可以避免被AJAX一步调用是出现被调两次的方法....
      

  2.   

    有三种解决方式:
    1.把你的dwr类继承action,action类也可以作为dwr的类来调用
    2.不再action里面产生验证码,不把产生的验证码放到httpsession里面,用cookie的方式
    3.在页面上直接刷新验证码,将产生的验证码放到一个隐藏域中,直接用JavaScript做比较
      

  3.   

    我觉得你思路有问题。 当你点击图片的时候 你url之后加一个new Date()
    然后就可以得到一个新的图片。 这个地方为什么要ajax?
    ajax一般要用来从数据库查询或者存入数据库。
    最终告诉客户是否成功。
    而你的图片其实是一张完整的页面,所以只要刷新就可以。
    其实你那个图片可以相当一个浏览器而已。如果你不能理解,你看看别人是怎么写的。
    dwr调用action类(struts1中)我原来用的时候老是报错,struts2是没有问题的。
    struts1耦合性比较高的。
     自己多试试吧。记得分给我
      

  4.   


    http://cuixiaodong214.blog.163.com/blog/static/95163982009112811449439/
    貌似有专门的方法 LZ看看吧
      

  5.   

    DWR 有现成的工厂类可以获取到一个HttpSession:
    import org.directwebremoting.WebContext;
    import org.directwebremoting.WebContextFactory; WebContext wctx = WebContextFactory.get();
            ap.setContextRoot(wctx.getHttpServletRequest().getSession());
    看看吧,这是我们项目中的代码。