2016-01-21 39 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