2013-05-11 2 views
0

Я пытаюсь разрешить кому-то вводить результат сопоставления на страницу html, а затем эти данные будут введены в базу данных, но я не могу получить какие-либо данные для ввода, что мне не хватает ?Вставка данных от пользователя в базу данных

вот мой код:

EnterResults.html

<html> 
<head> 
<title>Result</title> 
</head> 
<body> 

<FORM METHOD=GET ACTION="MatchResult.java"> 
Enter your home team: 
<INPUT TYPE="text" NAME="newhomet" VALUE = "" > 
Enter your away team: 
<INPUT TYPE="text" NAME="newawayt" VALUE = "" > 
Enter your home score: 
<INPUT TYPE="text" NAME="newhomes" VALUE = "" > 
Enter your away score: 
<INPUT TYPE="text" NAME="newaways" VALUE = "" > 
<INPUT TYPE="submit" VALUE = "Submit"> 
</FORM> 
</body> 
</html> 

MatchResult.jsp

package results; 
import java.sql.*; 
import java.util.*; 
public class MatchResult 
{ 

private static final String newHomeTeam = null; 
private static final String newAwayTeam = null; 
private static final String newHomeScore = null; 
private static final String newAwayScore = null; 
private static Statement statement; 
private Connection connection; 
public MatchResult() throws ClassNotFoundException, SQLException 
{ 
    try 
    { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    } catch (ClassNotFoundException cnfEx) 
    { 
     throw new ClassNotFoundException("Unable to locate JDBC driver!"); 
    } 

try 
{ 
    connectAndCreateStatement(); 
    String insertion = "INSERT INTO Results VALUES('" 
      + newHomeTeam + "','" 
      + newAwayTeam + "','" 
      + newHomeScore + "','" 
      + newAwayScore + "')"; 
    statement.executeUpdate(insertion); 

    System.out.println("\nContents after insertion:\n"); 
} 
catch(SQLException sqlEx) 
{ 
    System.out.println("* Cannot execute insertion! *"); 
    sqlEx.printStackTrace(); 
    System.exit(1); 
} 
disconnectFromDb(); 
} 



private void connectAndCreateStatement() throws SQLException, 
     ClassNotFoundException 
     { 

    try 
    { 

     connection = DriverManager.getConnection("jdbc:odbc:FootballData", 
       "", ""); 
    } catch (SQLException sqlEx) 
    { 
     throw new SQLException("Unable to connect to database!"); 
    } 

    try 
    { 
     statement = connection.createStatement(); 
    } catch (SQLException sqlEx) 
    { 
     throw new SQLException("Unable to create SQL statement!"); 
    } 
} 

private void disconnectFromDb() throws SQLException 
{ 
    try 
    { 
     connection.close(); 
    } catch (SQLException sqlEx) 
    { 
     throw new SQLException("Unable to disconnect from database!"); 
    } 
} 
} 
+1

Вы получаете сообщение об ошибке при запуске? – greedybuddha

+0

Если вы выбрали правильный «сервлет» тега, почему вы не использовали его в своем коде? Кроме того, вы знакомы с * Bobby Tables *? – skuntsel

ответ

0

Сначала проверьте отображение URL в web.xml и атрибут действия в HTML коде. Во-вторых, вы забыли прочитать значения, отправленные с html-страницы на ваш сервлет/jsp. Попробуйте добавить эти строки перед созданием запроса:

newHomeTeam = request.getParameter("newhomet"); 
newAwayTeam = request.getParameter("newawayt"); 
newHomeScore = request.getParameter("newhomes"); 
newAwayScore = request.getParameter("newaways"); 
+0

Я попытался использовать request.getParameter, но я alwats получил ошибку: «Метод getParameter (String) не определен для типа String», и я не понимаю, почему – 2013-05-11 19:01:30

+0

У вас есть сервлет для обработки HTTP-запросов/ответов? Этот метод не определен в вашем классе. Но он определен в 'HttpServletRequest'. – skuntsel

+0

Вы забыли продлить свой класс HttpServlet. Сначала вам нужно расширить свой класс, а затем переопределить запрос doGet (запрос HttpServletRequest, HttpServletResponse). –

0

ли вы попробовать положить двойные кавычки в методе вида?

<FORM METHOD="GET" ACTION="MatchResult.java"> 

Помимо этого, я не вижу никакого кода, который извлекает параметры, переданные GET. Вы не присвоили переменные значениям в GET. :)

Смежные вопросы