1 验证码一般采用生成时保存在session中,然后验证用户输入的是否和session的相同
可以去看看我的博客,里面有2篇相关的文章2 激活?
这个简单
1) 你根据用户名采用某个算法生成一个随机的字符串
2) 把这个字符串保存到用户的信息中
3) 发送邮件,链接里有这个字符串
4)用户激活时,根据字符串,查找对应的用户,然后激活
可以去看看我的博客,里面有2篇相关的文章2 激活?
这个简单
1) 你根据用户名采用某个算法生成一个随机的字符串
2) 把这个字符串保存到用户的信息中
3) 发送邮件,链接里有这个字符串
4)用户激活时,根据字符串,查找对应的用户,然后激活
谢谢你的文章!验证码已经搞定了
对于激活,
第三步时是人工发送邮件,还是用javamail之类的东西?
第四步是用户打开这个链接的同时时,直接去操作数据库里修改的这个字段么?
你可以将你生成的哪个字符串放到 session中就可以了 然后比较你的 邮件中的哪个和你session 中的是否相同。就可以了。
如果是延后激活 :
象QQ 的安全邮箱可以保证一个星期内激活密码有效。
这样的话放到session中就不行了。 必须放到数据库中。
我用javamail发送给用户一个链接如http://localhost:8080/test2/test/account=aftermddd5
用户点击发送一个请求到服务器,然后在服务器用一个servlet去处理,
这个servlet可以正确解析出account=aftermddd5。
问题是这个servlet去操作 数据库 的时候总是报错。一方面这个servlet不操作数据库时没问题,另一方面用hibernate处理数据库时也可以正常进行,
但是二者结合怎么就错了呢
错误信息:
严重: 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());
tomcat/shared/lib 目录下面