1 验证码一般采用生成时保存在session中,然后验证用户输入的是否和session的相同
  可以去看看我的博客,里面有2篇相关的文章2 激活?
  这个简单
  1) 你根据用户名采用某个算法生成一个随机的字符串
  2) 把这个字符串保存到用户的信息中
  3) 发送邮件,链接里有这个字符串
  4)用户激活时,根据字符串,查找对应的用户,然后激活

解决方案 »

  1.   

    to:java2000_net
    谢谢你的文章!验证码已经搞定了
    对于激活,
    第三步时是人工发送邮件,还是用javamail之类的东西?
    第四步是用户打开这个链接的同时时,直接去操作数据库里修改的这个字段么?
      

  2.   

    javamail 可以搞定。第四步这要看你的激活是采用即时激活还是延后激活。如果是即使激活的话:
    你可以将你生成的哪个字符串放到 session中就可以了 然后比较你的 邮件中的哪个和你session 中的是否相同。就可以了。
    如果是延后激活 :
    象QQ 的安全邮箱可以保证一个星期内激活密码有效。
    这样的话放到session中就不行了。 必须放到数据库中。
      

  3.   

    http://blog.csdn.net/java2000_net/archive/2008/05/02/2358484.aspx请参考我的博客!
      

  4.   

    谢谢你们的回答,在邮件激活这里我还有个地方调试不过去。
    我用javamail发送给用户一个链接如http://localhost:8080/test2/test/account=aftermddd5
    用户点击发送一个请求到服务器,然后在服务器用一个servlet去处理,
    这个servlet可以正确解析出account=aftermddd5。
    问题是这个servlet去操作     数据库     的时候总是报错。一方面这个servlet不操作数据库时没问题,另一方面用hibernate处理数据库时也可以正常进行,
    但是二者结合怎么就错了呢
      

  5.   

    各相关部分代码如下:
    错误信息:
    严重: Servlet.service() for servlet Test threw exception
    java.lang.NoClassDefFoundError: org/hibernate/Session
    at test.HelloWorld.doGet(HelloWorld.java:25)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:619)web.xml:
    <servlet>
    <servlet-name>Test</servlet-name>
    <servlet-class>test.HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/test/*</url-pattern
    </servlet-mapping>
    servlet中: PrintWriter out = resp.getWriter();
             String s=req.getRequestURL().toString();
             String[] res=s.split("=");       
             out.print("Hello World!<br>");
             out.print(s+"<br>"+res[res.length-1]+"<br>");
             
             PersonOperate po=new PersonOperate();
       Person2 p2=po.queryById("22");
       System.out.println(p2.getId());
       out.print(p2.getIsbn());
      

  6.   

    java.lang.NoClassDefFoundError: org/hibernate/Session 你得把 hibernate.jar 复制到 
    tomcat/shared/lib 目录下面