2016-01-21 79 views
0

我想從表單發佈數據並將其作爲字符串存儲使用getParameter並插入到數據庫,但它似乎getParameter甚至不存在。請求後。我沒有得到那種方法。嘗試重建,沒有區別。我應該添加外部依賴?我沒有看到任何提示輸入。getParameter方法丟失,當我請求

我的index.jsp文件

<%@ page import="java.sql.Statement" %> 
<%@ page import="java.sql.DriverManager" %> 
<%@ page import="java.sql.Connection" %> 
<!DOCTYPE HTML> 
<html> 
<head> 
</head> 
<body> 

    <img src="img/logo.png"> 

    <form method="post"> 
     <div class="form-group"> 
      <input type="text" class="form-control" id="usernameField" placeholder="Username"> 
     </div> 
     <div class="form-group"> 
      <input type="password" class="form-control" id="passwordField" placeholder="Password"> 
     </div> 
     <button type="submit">Login</button> 
    </form> 

    <% 
     // .getParameter highlighted in red. Not valid 
     String username = request.getParameter("usernameField"); 
     String password = request.getParameter("passwordField"); 

     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/tablename", "root", ""); 
     Statement statement = con.createStatement(); 
     statement.executeUpdate("INSERT INTO stat(user, pass) VALUES (username, password)"); 

    %> 
</body> 
</html> 
+0

你能發佈錯誤細節?您的代碼中至少有未捕獲的SQLException問題。和不好的SQL(不插入任何東西) – Jan

+0

@Jan我已經註釋掉了sql部分。試圖讓.getParameter工作。日誌沒有錯誤。該頁面在Chrome上打開。當我將信息輸入到字段並按提交時,也沒有錯誤。 – JasSy

+0

將JSP呈現爲發送給瀏覽器時,將執行JSP中的代碼。是否在此JSP的URL中提供了usernameField和passwordField值? – Jason

回答

0

我相信你輸入標籤應該有一個「名稱」屬性,這將是請求參數來獲取值的名稱。 例如

<input type="text" class="form-control" id="usernameField" name="username" placeholder="Username"> 

和檢索它的價值:

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

如果上面沒有在這裏工作是一個片段閱讀所有的請求參數和它們的值:

<% 
Enumeration paramNames = request.getParameterNames(); 
while(paramNames.hasMoreElements()) { 
    String paramName = (String)paramNames.nextElement(); 
    out.print("<b>" + paramName + ":</b>\n"); 
    String paramValue = request.getHeader(paramName); 
    out.println(paramValue); 
} 
%> 

編輯確定一個更接近你的更完整的例子:

<%@ page import="java.sql.Statement" %> 
<%@ page import="java.sql.DriverManager" %> 
<%@ page import="java.sql.Connection" %> 
<%@ page import="java.io.*,java.util.*" %> 
<!DOCTYPE HTML> 
<html> 
<head> 
</head> 
<body> 

    <img src="img/logo.png"> 

    <form method="post"> 
     <div class="form-group"> 
      <input type="text" class="form-control" id="usernameField" name="username" placeholder="Username"> 
     </div> 
     <div class="form-group"> 
      <input type="password" class="form-control" id="passwordField" name="password" placeholder="Password"> 
     </div> 
     <button type="submit">Login</button> 
    </form> 

    <% 
     // .getParameter highlighted in red. Not valid 
     String username = request.getParameter("username"); 
     String password = request.getParameter("password"); 

     Enumeration paramNames = request.getParameterNames(); 
     while(paramNames.hasMoreElements()) { 
      String paramName = (String)paramNames.nextElement(); 
      out.print("<b>" + paramName + ":</b>\n"); 
      String paramValue = request.getHeader(paramName); 
      out.println(paramValue); 
     } 

    %> 
</body> 
</html> 
+0

無法重新使用方法getParameterNames()。請求後。 ,我唯一的選擇是cast,field,par,try和var。 – JasSy

+0

無法真正瞭解您的評論,請參閱我修改後的答案,代碼更接近您的意見 – pleft

+0

試圖說與以前類似的問題。無法識別getParameterNames和getHeader。這些方法以紅色突出顯示。我只能調用request.cast,request.field,request.par,request.try,request.var。 – JasSy