次のスニペットは、データベースにキャプションを送信します。テキストを入力した後、[送信]をクリックしますが、驚いたことに、テーブルには常にnullが表示されます。以下のサーブレットコードとhtmlデザインについて説明しました。
<form method="post" action="Handler" enctype="multipart/form-data">
<table>
<tr>
<td> <strong> Leave a caption </strong> </td>
<td> <input type="text" name="caption box" size="40" /></td>
</tr>
<tr colspan="2">
<td> <input type="submit" value="submit caption"/> </td>
</tr>
</table>
</form>
サーブレット
String caption = request.getParameter("caption box"); // get the caption from the caption field
HandleCaption hc = new HandleCaption(caption,emailOfTheUser,fileName);
hc.SubmitCaptionToTheDatabase();
クラス
public class HandleCaption {
private String Caption = null;
private String UserEmail = null;
private String NameOfThe = null;
public HandleCaption(String caption,String email,String filename) {
Caption = caption;
UserEmail = email;
NameOfThe = filename;
}
public void SubmitCaptionToTheDatabase() {
try {
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/DS");
Connection connection = ds.getConnection();
String sqlQuery = "insert into CAPTIONS values ('" + UserEmail + "','" + NameOfThe + "','" + Caption + "')";
PreparedStatement statement = connection.prepareStatement(sqlQuery);
int x = statement.executeUpdate();
}catch(Exception exc) {
exc.printStackTrace();
}
}
}
サーブレットで返されたテキストフィールドの値を出力してみましたが、nullも出力されました。テキストフィールドがnullを返すのはなぜですか?