Servlets 为什么Javaservlet返回null?
我试图从html中获取值,但它只通过Post或get命令提供null。我也在使用Wildfly应用服务器。当我提交时,它会转到下一页,但值似乎为“null” PS:我在xml文件中添加了servlet,如下所示: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
<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
属性的输入才会添加到请求中。