2016-04-19 231 views
0

我正在創建一個網站,並且無法從文本框中檢索值。我有一個用戶輸入用戶名的登錄頁面。我必須從文本框中取值,然後將其發送到login.jsp,其中request.getParameter()方法採用文本框的值。但我猜request.getParameter()不工作。請幫助我指出錯誤。 這裏是我的代碼Request.getParameter()方法不起作用

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
    <link rel="stylesheet" type="text/css" href="login.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
    <style> 
     .center{ 
      margin: auto; 
      width: 400px; 
      height: 400px; 
      border: 3px; 
      padding-top: 50px; 
     } 


    </style> 

</head> 
<body> 

    <div class="center" > 
     <form action="login.jsp" method="post"> 
      <div> 
       <img src="images/crms.png" style="padding-bottom:50px;" width="440" height="240"> 
      </div> 
      <div id="comment_bubble" > 
       <div class="form" id="form1"> 
        <h2 style="padding-left:125px;">Sign In</h2> 
        <img src="images/hooo.png" style="padding-left:120px;padding-bottom:10px; "> 
        <div class="form-group has-feedback"> 
         <input type="text" class="form-control" id="email" placeholder="Username" name="inputtext" value=""><span class="glyphicon glyphicon-user form-control-feedback " id="username"></span><br></div> 
        <div class="form-group has-feedback"> 
         <input type="password" class="form-control" id="password" placeholder=" Password" align="center" name="pwd" value=""><span class="glyphicon glyphicon-lock form-control-feedback" id="pass"></span><br></div> 
        <button id="button" type="button" class="btn btn-default" value="submit" onclick="callfun();" >Submit</button><br><br> 
        <a href="#myModal" data-toggle="modal" id="Register">Create a new account</a> 

       </div> 
      </div> 
     </form> 

     <div class="modal fade" id="myModal" role="dialog"> 
      <div class="modal-dialog"> 
       <div class="modal-content"> 
        <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal">X</button> 
         <h3>Create A New Account</h3> 
        </div> 
        <div class="modal-body"> 
         <div class="form-group" id="form2"> 
          <label for="sel1"> Designation</label> 
          <select class="form-control" id="sel1" > 
           <option>Director</option> 
           <option>Faculty</option> 
           <option>Technician</option> 
          </select><br> 

          <input type="email" class="form-control" placeholder="Username"><br> 
          <input type="email" class="form-control" placeholder="Faculty_Id"><br> 
          <input type="password" class="form-control" placeholder="Password"><br> 
          <input type="password" class="form-control" placeholder="Re-type password"><br> 

          <button id="button2" type="button" class="btn btn-primary" >Submit</button> 

         </div> 
        </div> 
       </div> 
      </div> 
     </div> 

    </div> 
    <script> 
     function callfun() { 
      location.href = "login.jsp"; 
     } 
    </script> 


</body> 
</html> 

,這裏是我的JSP代碼:

<%@page import="java.sql.ResultSet"%> 
<%@page import="java.sql.Statement"%> 
<%@page import="java.sql.DriverManager"%> 
<%@page import="java.io.*,java.util.*"%> 
<%@page import="java.sql.Connection"%> 
<% 
String userid = request.getParameter("inputtext"); 
if(userid==null){ 
out.println("userid missing"); 
} 
else{ 
String pass = request.getParameter("pwd"); 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/crms", "root", "root"); 
Statement st = con.createStatement(); 
ResultSet rs = st.executeQuery("select * from login where username='" + userid + "'"); 

if (rs.next()) { 
    if (rs.getString(2).equals(pass)) { 
     String site=new String("complain.jsp"); 
     response.setStatus(response.SC_MOVED_TEMPORARILY); 
     response.setHeader("Location",site); 
    } else { 
     out.println("else running"); 
    } 
} 
} 
%> 

回答

-1

您的密碼輸入框的密碼有一個名字,你可以得到由名的密碼值。例如說

<input type="password" value="" name="pass"> 

您可以通過調用

String pass = request.getParameter("pass"); 

不管怎麼說得到的參數值獲取的價值形式的後端,你應該提交(後)與特定的URL的形式。你可以包含一個id爲您的表單

<form action="login.jsp" method="post" id="myForm"> 

而且你的腳本應該是

<script> 
     function callfun() { 
      $("#myForm").submit(); 
     } 
</script> 

讓我知道,如果工程。 謝謝。

+0

感謝您的幫助。但它仍然不顯示用戶名。 – harry19

+0

當你提取問題?創建新帳戶或登錄? –

+0

在這裏我看到你的'

'標籤沒有封閉'Create new Account'。所以用於創建新帳戶。在所有輸入字段後面加上'
'標籤。 –

0

如果您使用的是<form action="login.jsp" method="POST">,那麼您不需要任何JavaScript將數據發送到jsp。只需使用

<button id="button" type="submit" class="btn btn-default" value="Submit">Submit</button> 

submit型照顧的數據發送到下一個屏幕

+0

謝謝。我已經嘗試過,但如果他這樣做,它不起作用 – harry19

0

您的密碼字段沒有名字,所以request.getParameter()無法找到它。它應該是

<input type="password" class="form-control" placeholder="Password" name="pwd"> 

無論如何,你這樣做是錯誤的。你應該select * from login where username = ? and password = ?,看看是否有任何結果。讓數據庫完成這項工作。

+0

,我認爲它不起作用。因爲他結束'

'標記不包圍那些輸入字段。當然應該加上名字。感謝您的反對票。 –

+0

我在獲取userid變量(login.jsp)中的值時遇到了問題。無論我做什麼,userid變量的值都是空的。當我編譯和運行我的程序時,它總是打印userid缺失。 – harry19

+0

@AtaurRahmanMunna在這個答案中,或者在你的這個問題上,沒有'end'''標記,但是當他通過Javascript提交時,它是不相關的。我同意他不應該那樣做,但這不是真正的問題。這是。你沒有任何有關選民身份的信息,猜測它是無意義的和不恰當的。 – EJP