Maven:部署一个带有响应JavaEE的HTML表单页面,用POST打印结果
我有一个HTML文件,它有一个表单:Maven:部署一个带有响应JavaEE的HTML表单页面,用POST打印结果,java,html,maven,jakarta-ee,Java,Html,Maven,Jakarta Ee,我有一个HTML文件,它有一个表单: <head> </head> <body> <h1>Voter Registration Page</h1> <p>Please fill out all information below to register as a voter.</p> <form method = "post" action = "results"> First name: &
<head>
</head>
<body>
<h1>Voter Registration Page</h1>
<p>Please fill out all information below to register as a voter.</p>
<form method = "post" action = "results">
First name: <input type="text" name="firstname" id="firstname"><br>
Last name: <input type="text" name="lastname" id="lastname" ><br>
Address: <input type="text" id="address" name="address"><br>
City: <input type="text" id="city" name="city"><br>
State: <input type="text" id="state" name="state"><br>
Zip: <input type="text" id="zip"name="zip"><br>
Phone Number: <input type="text" id="phone" name="phone"><br><br>
Affiliation:<br>
<input type="radio" name="affil" value="Democrat">Democrat<br>
<input type="radio" name="affil" value="Green Party">Green Party<br>
<input type="radio" name="affil" value="Liberterian">Liberterian<br>
<input type="radio" name="affil" value="Republican">Republican<br>
<input type="radio" name="affil" value="Unafilliated">Unafiiliated<br>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
选民登记页
请填写以下所有信息以登记为选民
名字:
姓氏:
地址:
城市:
状态:
邮政编码:
电话号码:
隶属关系:
民主党人
绿党
自由主义者
共和党人
无关联的
使用Maven和JAVA EE,当用户单击HTML表单上的Submit时,我尝试使用POST创建一个结果页面:
web.xml
<servlet>
<servlet-name>results</servlet-name>
<servlet-class>controller.Response</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>results</servlet-name>
<url-pattern>/results</url-pattern>
</servlet-mapping>
结果
控制器,响应
结果
/结果
当前Java代码:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Response extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException{
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>demolet</title></head>");
out.println("<body>");
out.println("<p>First Name:</p>");
out.println("<p>Last Name:</p>");
out.println("<p>Address:</p>");
out.println("<p>Phone:</p>");
out.println("<p>Afiiliation:</p>");
out.println("</body></html>");
out.close();
}
}
import java.io.*;
导入javax.servlet.*;
导入javax.servlet.http.*;
公共类响应扩展了HttpServlet{
public void doPost(HttpServletRequest请求、HttpServletResponse响应)
抛出IOException{
PrintWriter out=response.getWriter();
out.println(“”);
out.println(“demolet”);
out.println(“”);
out.println(“名字:”);
out.println(“姓氏:”);
out.println(“地址:”);
out.println(“电话:”);
out.println(“afiliation:”);
out.println(“”);
out.close();
}
}
然而,我面临的主要问题是:
1.我试图弄清楚如何将HTMl文件中回答的值传递给Java文件,以便它能够正确地编写一个包含结果的HTMl文件
2.我不熟悉Java servlet和xml,所以我觉得我的设置不正确
如果有人能为这两个问题中的任何一个提供帮助,那就太好了。谢谢
现在不要担心Maven部分,我知道如何使用命令行设置项目并查看结果和内容。可以使用请求对象获取HTML表单数据:
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
System.out.println((String)paramNames.nextElement());
}
您需要从request
参数中读取
字段值
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException{
PrintWriter out = response.getWriter();
.......
String firstname=request.getParameter("firstname");
out.println("<p>First Name:"+ firstname +"</p>");
.......
}
public void doPost(HttpServletRequest请求,HttpServletResponse响应)
抛出IOException{
PrintWriter out=response.getWriter();
.......
String firstname=request.getParameter(“firstname”);
out.println(“名字:“+firstname+””);
.......
}
作为GET/POST一部分提交的所有数据将成为HttpServletRequest
对象的一部分。您可以使用相同的方法获取值。有关更多详细信息,请参阅
不在.java文件中编写HTML和不在.jsp文件中编写java也是一种很好的做法