从链接中的servlet发送值到jsp页面

时间:2014-08-15 13:59:40

标签: java jsp servlets url-parameters

我需要从我的servlet发送一个重置密码链接到我的jsp页面。

我正在生成html消息并将其作为电子邮件发送给请求密码更改的用户。

一旦他点击该链接,它将获取链接中的参数并将打开Reset-Password-Page.jsp

所以,这就是我所拥有的......

SendEmail.java

...
String server = "localhost";
int randNum = 25364;
String practiceName = "blueCross";
msg.setContent("<p>Hi there,</p><br /><a>We received a request to reset your password. <br />To reset your password and access your account, click the link below.</a><br />"
                        +"<a href=\"<%= server%>:8080/RSIwork/ConfirmedResetPasswordPage.jsp?randNum=<%= randNum%>&practiceName=<%= practiceName%>\" Click Here </a>",
                        "text/html" );
        Transport.send(msg);
...

这会生成网址:

http://localhost:8080/RSIwork/ConfirmedResetPasswordPage.jsp?randNum=257&&practiceName=usr

这很好,但我没有在我的servlet中获取这些参数...

ConfirmedResetPasswordPage.jsp

<form id="frmLogon" action="changePasswordLDAP" method="post">
    <table> 
        <tr>
            <td class="style2">Username:</td>
            <td><input id="username" type="text" name="userName"  autocomplete="off" required/></td>
        </tr>
        <tr>
            <td class="style2" >New Password:</td>
            <td><input id="rdNewPassword" type="password" name="newPassword"required/>             </td>
        </tr>
        <tr>                                                   
            <td><input id="practiceName" type="hidden" name="practiceName" value="<%request.getParameter("practiceName");%>"/></td>
        </tr> 
        <tr>
            <td><input id="randNum" type="hidden" name="randNum" value="<%request.getParameter("randNum");%>"/></td>
        </tr>   

changePasswordLDAP.java

String practiceName = request.getParameter("practiceName");
String userName     = request.getParameter("userName");
String newPassword  = request.getParameter("newPassword");
String randNum      = request.getParameter("randNum");
System.out.println(practiceName  + userName + newPassword + randNum);

但这并不打印randNum和实用名称

有人告诉我,如果我做任何事情。我一定是......

1 个答案:

答案 0 :(得分:1)

正如@JB Nizet在评论中指出的那样:

<%request.getParameter("practiceName");%>

实际应该是:

<%= request.getParameter("practiceName") %>

注意添加的&#34; =&#34;并删除&#34;;&#34;。

除此之外,要检查此类错误,请单击Web浏览器中的第二个按钮,然后选择inspect元素。然后在html中搜索要调试的部分代码,看看它是否正确显示。

在这种情况下,它看起来像这样:

<input id="practiceName" type="hidden" name="practiceName" value/>

而不是:

<input id="practiceName" type="hidden" name="practiceName" value="practiceNameValue"/>