Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么文本字段总是返回null?_Java_Html_Database_Servlets - Fatal编程技术网

Java 为什么文本字段总是返回null?

Java 为什么文本字段总是返回null?,java,html,database,servlets,Java,Html,Database,Servlets,以下代码段向数据库提交标题。填写完文本后,我单击submit,但出乎意料的是,表格中总是出现一个空值。我在下面介绍了servlet代码和html设计: <form method="post" action="Handler" enctype="multipart/form-data"> <table> <tr> <td> <strong> Leave a capti

以下代码段向数据库提交标题。填写完文本后,我单击submit,但出乎意料的是,表格中总是出现一个空值。我在下面介绍了servlet代码和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>
课程

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();
    }
}
}


我尝试打印servlet中文本字段返回的值,该值甚至打印为null。为什么文本字段返回null?

字段的名称
captionbox
不应包含空格

<input type="text" name="captionbox" size="40" />


从它和servlet端删除空格。

字段的名称
captionbox
不应包含空格

<input type="text" name="captionbox" size="40" />

删除它和servlet端的空格。

我不确定为什么会发生这种情况,但我曾经发生过一两次。。 我将您的标题类处理标题,将其声明为

private String Caption = "";
private String UserEmail = "";
private String NameOfThe = "";
我知道这看起来像是对这个问题的愚蠢回答,因为在构造函数中,您实际上指的是传递的值,但我经历过这一点,这就是我的解决方案。请尝试并回答

更新:很抱歉回答错误 由于其编码类型,将阅读其发生的原因。。但只要删除编码类型,它就可以工作。在示例代码上尝试过

更新:版本3.0之前的Servlet API默认不支持多部分/表单数据编码请求。Servlet API默认使用application/x-www-form-urlencoded编码解析参数。当使用不同的编码时,request.getParameter()调用将全部返回null。

我不确定为什么会发生这种情况,但我已经发生过一两次。。 我将您的标题类处理标题,将其声明为

private String Caption = "";
private String UserEmail = "";
private String NameOfThe = "";
我知道这看起来像是对这个问题的愚蠢回答,因为在构造函数中,您实际上指的是传递的值,但我经历过这一点,这就是我的解决方案。请尝试并回答

更新:很抱歉回答错误 由于其编码类型,将阅读其发生的原因。。但只要删除编码类型,它就可以工作。在示例代码上尝试过



更新:版本3.0之前的Servlet API默认不支持多部分/表单数据编码请求。Servlet API默认使用application/x-www-form-urlencoded编码解析参数。当使用不同的编码时,request.getParameter()调用将全部返回null。

此外,我无法在该文本字段中的单词之间留出空格!如果你
input
widget没有使用包含空格的名称,结果会怎样?你真的需要多部分/表单数据吗?@gregkopf我不明白你的意思,我也无法在文本字段中的单词之间留出空格!如果你
input
widget没有使用包含空格的名称,结果会是什么?你真的需要多部分/表单数据吗?@gregkopf我不明白你的意思,我不认为这是个问题,你能用elobarate吗?什么!你为什么这么认为呢?这也是:“
ID
NAME
标记必须以字母(
[a-Za-z]
)开头,后面可以跟任意数量的字母、数字(
[0-9]
)、连字符(
”-“
)、下划线(
)、冒号(
)和句点(
)。”@grassPro根据我之前的评论,恐怕您刚刚将html中的请求变量名称从
标题框
更改为
标题框
,而不是servlet中的请求变量名称。如果您的请求变量不应具有and,我看不出有任何理由使您获得
null
。此外,我无法在该文本字段中使用空格键。我正在做别人的设计,他使用了很多JQUERY和JAVASCRRIPT。当我点击寻找空间时,页面上的照片会移动得更远!我不认为这是一个问题,你会请埃洛巴拉特吗?什么!你为什么这么认为呢?这也是:“
ID
NAME
标记必须以字母(
[a-Za-z]
)开头,后面可以跟任意数量的字母、数字(
[0-9]
)、连字符(
”-“
)、下划线(
)、冒号(
)和句点(
)。”@grassPro根据我之前的评论,恐怕您刚刚将html中的请求变量名称从
标题框
更改为
标题框
,而不是servlet中的请求变量名称。如果您的请求变量不应具有and,我看不出有任何理由使您获得
null
。此外,我无法在该文本字段中使用空格键。我正在做别人的设计,他使用了很多JQUERY和JAVASCRRIPT。当我点击寻找空间时,页面上的照片会移动得更远!阅读问题。由于Enctype的原因,在将值发送给helper classits之前,我告诉过该值为null。。我仍然要找到原因,但我做了一个示例代码。。你从表单标签中复制了编码类型,它就工作了..我复制粘贴了你的代码并制作了一个示例程序是的,现在它工作了!但我必须使用多部分编码。有出路吗?请参阅文章。要使用此编码获取值,需要添加commons-fileupload.jar。这个问题有一个漂亮的答案。。请注意,如果可能的话,请给出答案。。!!阅读问题。由于Enctype的原因,在将值发送给helper classits之前,我告诉过该值为null。。我仍然要找到原因,但我做了一个示例代码。。你从表单标签中复制了编码类型,它就工作了..我复制粘贴了你的代码并制作了一个示例程序是的,现在它工作了!但我必须使用多部分编码。有出路吗?请参阅文章。要使用此编码获取值,需要添加commons-fileupload.jar。这个问题有一个漂亮的答案。。请注意,如果可能的话,请给出答案。。!!