2013-05-12 4 views
-1

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

<html> 
<head> 
<title>Result</title> 
</head> 
<body> 
<FORM METHOD=GET ACTION="EnterResult.jsp"> 
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> 

EnterResult.jsp

<HTML> 
<%@ page import="java.util.*" import="java.awt.*" import= "javax.swing.*" import= "java.sql.*" import= "java.util.* " import= "matchBean.*" errorPage= "NewError.jsp" %> 
<jsp:useBean id="newMatchBean" class="matchBeans.MatchResults" /> 

<% 
String newHomeTeam; 
String newAwayTeam; 
String newHomeScore; 
String newAwayScore; 
newHomeTeam = request.getParameter("newhomet"); 
newAwayTeam = request.getParameter("newawayt"); 
newHomeScore = request.getParameter("newhomes"); 
newHomeScore = request.getParameter("newaways");  
%> 
</HTML> 

MatchResult.java

package matchBeans; 
import java.sql.*; 
import java.util.*; 
public class MatchResults 
{ 
private static Connection connection = null; 
private static Statement statement; 
private ResultSet results; 
private String query; 
private String newHomeTeam; 
private String newAwayScore; 
private String newHomeScore; 
private String newAwayTeam; 

public MatchResults() throws ClassNotFoundException 
{ 
    try 
    { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    } 
    catch (ClassNotFoundException cnfEx) 
    { 
     throw new ClassNotFoundException(
        "Unable to locate JDBC driver!"); 
    } 
} 

public void newMatchBean() throws SQLException, ClassNotFoundException 
{ 

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

    System.out.println("\nContents after insertion:\n"); 
    disconnectFromDb(); 

} 

private static 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 static void disconnectFromDb() throws SQLException 
{ 
    try 
    { 
     connection.close(); 
    } 
    catch (SQLException sqlEx) 
    { 
     throw new SQLException(
       "Unable to disconnect from database!"); 
    } 
} 
} 
+0

Первый из всего вашего HTML является изворотливым. Удалите пробелы вокруг знаков =, сделайте все теги и атрибуты строчными. А также всегда имеют кавычки вокруг ваших значений атрибутов и слэши в конце незакрытых тегов (например, '

', ' ') – cortices

+0

Вы также считаете, что переменные, созданные в EnterResult.jsp, будут заполнять переменные в MatchResult.java с теми же именами. – cortices

+0

, так как я могу передать данные из jsp в файл MatchResult.java. – 2013-05-12 01:31:50

ответ

1

Вы никогда не устанавливая значения в MatchResult.java от EnterResult.jsp.

Вам нужно сделать newMatchBean() взять четыре переменные в качестве аргументов, а затем называть их от EnterResult.jsp.

Я не был в состоянии проверить это, но он должен работать:

EnterResult.jsp

... 
<% 
String newHomeTeam; 
String newAwayTeam; 
String newHomeScore; 
String newAwayScore; 
newHomeTeam = request.getParameter("newhomet"); 
newAwayTeam = request.getParameter("newawayt"); 
newHomeScore = request.getParameter("newhomes"); 
newHomeScore = request.getParameter("newaways"); 

newMatchBean.newMatchBean(newHomeTeam, newAwayTeam, newHomeScore, newAwayScore); 
%> 
... 

MatchResult.java

... 
public void newMatchBean(String newHomeTeam, String newAwayTeam, String newHomeScore, String newAwayScore) throws SQLException, ClassNotFoundException 
{ 
    ... 

Ссылка: http://leejeok.wordpress.com/2007/08/11/jsp-and-javabeans-passing-parameter/

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