密码更改消息在jsp中加载时出现

时间:2014-05-23 03:50:40

标签: jsp change-password

以下用于更改密码的代码成功运行,但是当页面加载"密码更改失败时#34;消息已经出现。一旦我重置了密码,它就会改变。我甚至尝试使用隐藏的标签,但它仍然无法正常工作。

    <form class="f1">
        <p class="a">
            <input type="text" name="oldpass" placeholder="Password">
             </p>
        <p class="a">
            <input type="password" name="newpwd" placeholder="New Password">
           </p>
            <p class="a">
            <input type="password" name="cnfrmpwd" placeholder="Confirm Password">
           </p>
           <br>
            <input type="submit" name="submit" value="RESET">

 <%
            String olpass=request.getParameter("oldpass");
            String newpass=request.getParameter("newpwd");
            String conpass=request.getParameter("cnfrmpwd");
            Connection con;
            ResultSet rs=null;
            try{
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con = DriverManager.getConnection("jdbc:odbc:D");
            PreparedStatement ps=con.prepareStatement("select * from AOI.dbo.Login where Password='"+olpass+"'");
            rs=ps.executeQuery();
            while(rs.next()){
            i=rs.getString(1);
            pas=rs.getString(2);}

            if(pas.equals(olpass)){
  PreparedStatement ps1=con.prepareStatement("update AOI.dbo.Login set Password='"+newpass+"' where Username='"+i+"'");
            int i1=ps1.executeUpdate();%>
        <p class="reset">Password has been Reset</p>
           <% } else {%>
         <p class="reset">Password change failed. Try again!</p>
           <% }
            }catch(Exception e){
            out.println(e);
            }
              %>

1 个答案:

答案 0 :(得分:0)

  • 您正在接受&#34;密码更改失败&#34;因为当你加载页面。 else部分执行,因此您收到消息。

  • 首次加载页面时,请求不包含任何数据。所以olpass为空。您正在初始化pas,您可能会将其初始化为空字符串,如String pass="";所以&#34;&#34;不等于零,所以除了部分例外。

解决方案:

  • 执行密码检查前检查为空
  • 因此,您可以更改以下代码以检查空值和密码匹配

if(olpass!=null&&newpass!=null&&pas.equals(olpass)) { //your code} else if(olpass!=null||newpass!=null|``(olpass!=null&&newpass!=null&&!pas.equals(olpass))) {//your code}