Servlets 为什么Javaservlet返回null?

Servlets 为什么Javaservlet返回null?,servlets,Servlets,我试图从html中获取值,但它只通过Post或get命令提供null。我也在使用Wildfly应用服务器。当我提交时,它会转到下一页,但值似乎为“null” PS:我在xml文件中添加了servlet,如下所示: <servlet-mapping> <servlet-name>DataServlet</servlet-name> <url-pattern>/dataServlet</url-pattern> </servlet-m

我试图从html中获取值,但它只通过Post或get命令提供null。我也在使用Wildfly应用服务器。当我提交时,它会转到下一页,但值似乎为“null”

PS:我在xml文件中添加了servlet,如下所示:

<servlet-mapping>
<servlet-name>DataServlet</servlet-name>
<url-pattern>/dataServlet</url-pattern>
</servlet-mapping>

数据服务器
/数据服务器
Servlet:

package webpackage;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/dataServlet")
public class DataServlet extends HttpServlet {


    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        // Get
        String combobox=request.getParameter("User");
        String value=request.getParameter("demo");

        PrintWriter writer = response.getWriter();

        // Build
        String htmlRespone = "<html>";
        htmlRespone += "<h2>User Id: " + combobox + "</h2>";
        htmlRespone += "<h2>User Id: " + value + "</h2>";
        htmlRespone += "</html>";

        // Return
        writer.println(htmlRespone);
        System.out.println(combobox);
    }
}
包装网页;
导入java.io.IOException;
导入java.io.PrintWriter;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
@WebServlet(“/dataServlet”)
公共类DataServlet扩展了HttpServlet{
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
//得到
字符串组合框=request.getParameter(“用户”);
字符串值=request.getParameter(“demo”);
PrintWriter=response.getWriter();
//建造
字符串htmlRespone=“”;
htmlRespone+=“用户Id:+combobox+”;
htmlRespone+=“用户Id:+value+”;
htmlRespone+=“”;
//返回
writer.println(htmlRespone);
System.out.println(组合框);
}
}
HTML:


用户1
用户2
改变
示例3


对于
用户

    <form method="post" action="dataServlet">
        <select name="User">
            <option selected="true" value="Example1">User1</option>
            <option value="Example2">User2</option>
        </select>
        <button type="submit">Change</button>
    </form>

    <h1></h1>
    <p id="demo">Example3</p>

用户1
用户2
改变
示例3

这是必要的
name
属性(
demo
),请注意,我认为这对
不起作用,但您可以使用隐藏输入在表单中设置值

注意,你应该使用相同的语法,先用大写字母,然后用小写字母
User
demo

电子数据交换:
A

对于
用户

    <form method="post" action="dataServlet">
        <select name="User">
            <option selected="true" value="Example1">User1</option>
            <option value="Example2">User2</option>
        </select>
        <button type="submit">Change</button>
    </form>

    <h1></h1>
    <p id="demo">Example3</p>

用户1
用户2
改变
示例3

这是必要的
name
属性(
demo
),请注意,我认为这对
不起作用,但您可以使用隐藏输入在表单中设置值

注意,你应该使用相同的语法,先用大写字母,然后用小写字母
User
demo

电子数据交换:
A

您的输入不在表单中,因此不会发送,而不是写入respone,您是否可以尝试将其转发到jsp页面,如此处所述:您的输入不在表单中,因此不会发送,而不是写入respone,您是否可以尝试将其转发到jsp页面,如本文所述:所以每次需要从html中获取值时,我都需要生成它?附:因为我不能把放进去,所以不能发送出去。@JohnD。不,您可以始终使用Ajax发送带有特定参数的请求,并以您想要的任何格式恢复结果(这只是文本)。你应该搜索它,有很多教程,这是非常简单的使用。但是在当前页面中,是的,只有表单中带有
name
属性的输入才会添加到请求中。所以每次我需要从html中获取值时,我都需要对其进行格式化?附:因为我不能把放进去,所以不能发送出去。@JohnD。不,您可以始终使用Ajax发送带有特定参数的请求,并以您想要的任何格式恢复结果(这只是文本)。你应该搜索它,有很多教程,这是非常简单的使用。但是,在当前页面中,是的,只有表单中带有
name
属性的输入才会添加到请求中。