找回密码时将一段URL发送到对方的信箱,然后对方点击地址就能直接进入修改密码的页面是怎么实现的啊?发送邮件可以实现了,就差我到底发送什么地址,然后那个地址是怎么算出来的,为什么这个地址不受全局global的控制(我用的是struts2架构)可以直接进入修改密码的页面?高手能给出点例子什么的吗?或者谁能给我个例子也可以……我邮箱 [email protected]

解决方案 »

  1.   

    说个思想。
    首先,假设有张表yz,存放用户ID和URL信息。
    你发送的URL一定得是唯一的吧你可以通过发送时间和用户ID组合起来MD5 32位或64位加密来生成唯一ID。(用UUID生成也可,保证唯一性就OK。)。假设生成的URL地址是 。  http://www.test.com/user/yz.jsp?YZID=b8c6c2ab-875c-4948-88d2-e3869939009a
    同时将
    然后在验证的页面是yz.jsp中写方法接受YZID的参数。
    String URLID=request.getParameter("YZID");
    通过URLID查询数据库中yz表中是否存在该参数。如果有,取出用户ID并跳至密码设置页面。 这样基本上就OK了。
    当然,有的用户可能重复多次发送,或着有验证时间限制,在yz表中多添加字段即可,判断是否已经过期之类的。
      

  2.   

    假设生成的URL地址是 。  http://www.test.com/user/yz.jsp?YZID=b8c6c2ab-875c-4948-88d2-e3869939009a 
    同时将 生成的 "b8c6c2ab-875c-4948-88d2-e3869939009a"和这个用户ID,存入数据库,以便于以后查询。红色部分刚才漏写了。