Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java整合电子邮件?_Java_Spring_Hibernate_Jsp_Email - Fatal编程技术网

如何使用Java整合电子邮件?

如何使用Java整合电子邮件?,java,spring,hibernate,jsp,email,Java,Spring,Hibernate,Jsp,Email,实际上,在我的java应用程序中,注册是他们的,所以我向用户发送电子邮件 <bean id="activateAccountTemplate" class="org.springframework.mail.SimpleMailMessage"> <property name="subject" value="Account activation" /> <property name="text"> <value>

实际上,在我的java应用程序中,注册是他们的,所以我向用户发送电子邮件

<bean id="activateAccountTemplate" class="org.springframework.mail.SimpleMailMessage">
    <property name="subject" value="Account activation" />
    <property name="text">
        <value>
        <![CDATA[
            <html><body><p>Dear %s</p><p>Click <a href="http://localhost:8080/EClass/reset.jsp?a=%s">here</a> to activate your account.</p></body></html>
        ]]>
        </value>
    </property>
</bean>
听说我在使用加密机制

我的数据库有一列,如..
suid、用户名、密码、活动(T/F)

我的要求是当ever register
Active
始终
F(false)
时,但单击链接后
Active
true
(ever Active为true时,只允许登录)

那么如何在reset.jsp中执行呢?实际上我的想法是

  • 为此编写一个控制器,并更新
    Active
    列为
    True
    (但如何获取此列的sid)

  • 获取SID时,将生成上面显示的实际加密密钥,因此该密钥将被解密并发送到控制器,并使用DB Query选择特定用户并将其设置为active true。(还将了解如何获取url密钥…
    request.getParameter(?)

  • 请给我建议。。。我被困在如何做这件事上了

    reset.jsp上给出一些示例代码


    编辑:实际上我遵循的是MVC原则,因此在没有reset.jsp的情况下,如何编写direct controller类。

    您的reset.jsp可能是这样的:

    <%
        String token = request.getParameter("a");
    
        // Connection to DB executing this query :
        // "UPDATE users SET active = true WHERE S_id = " + token
    %>
    

    没什么帮助,因为我以前从未做过Spring…

    您应该将活动和其他内容放在一个单独的表中

    table user
    
    id   username   password
    
    
    table activation
    
    id active expired_time token user_id
    
    用户完成注册后,应在激活表中插入一条记录。活动字段为假,过期时间为现在之后2小时,以此类推


    然后使用令牌查找表并执行活动工作。

    实际上我使用的是MVC,因此如果可能在不使用重置的情况下编写Direct Contrllor类。jspI已经更新了答案。当然,我也认为激活比重置更好!谢谢你的重播。。但我在Spring中使用,所以有可能创建一些控制器类并执行所有DB操作吗?。我在研究中添加了Spring控件示例代码,因为我从未在Spring中开发过,也没有测试过。谢谢,最后一个。。。有必要编写web.xml servelet标记吗?哦。。非常感谢你的这个想法。。我忘了这个。。。请帮助我如何使用请求url编写spring控制器?
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class Reset extends HttpServlet {
    
      public void doGet(HttpServletRequest request, HttpServletResponse response)
                                   throws ServletException, IOException {
        String token = request.getParameter("a");
    
        // Connection to DB executing this query :
        // "UPDATE users SET active = true WHERE S_id = " + token
    
        response.setContentType("text/html");
        PrintWriter out = res.getWriter();
    
        out.println("<HTML><BODY>Your response to the user depending on rows updated from SQL</BODY></HTML>");
      }
    }
    
    <servlet>
      <servlet-name>reset</servlet-name>
      <servlet-class>myservlets.reset</servlet-class>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>reset</servlet-name>
      <url-pattern>/reset</url-pattern>
    </servlet-mapping>
    
    <a href="http://localhost:8080/EClass/reset?a=%s">here</a>
    
    @Controller
    @RequestMapping(value = "/activation"
    public class AccountActivationController
    {
        @RequestMapping(method = RequestMethod.GET)
        public String setupForm(@RequestParam("a") String token, ModelMap model) {
            // Connection to DB executing this query :
            // "UPDATE users SET active = true WHERE S_id = " + token
    
            return successful ? "activationSuccessful" : "activationError";
        }
    }
    
    table user
    
    id   username   password
    
    
    table activation
    
    id active expired_time token user_id