Java 缺少 Servlet 请求参数
Java Servlet request parameter missing
我正在使用 Tomcat 7。我有一个方法,其中有一个名字列表,这些名字在他们的传记页面上有 links。 link 基于他们的 id。然而,他们的 id 没有出现在 URL 中。当我单击 link 时,url 显示,localhost:8080/Persons/servlet/person?pid=
我不确定为什么不显示 ID。
我有一个登录名 class,它使用 doPost 来隐藏密码和用户名。这是生成人员列表及其 link 的页面。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
...
query = "SELECT * FROM persons";
rs = statement.executeQuery(query);
String name = "";
while(rs.next())
{
String id = rs.getString("id");
name = rs.getString("first_name") + " " + rs.getString("last_name");
out.println("<a href = '/Persons/servlet/person?pid='" + id + "\"'>" + name + "</a>");
out.println("<br/>");
}
}
单击 linked 时,它会进入处理传记的 Person.java class。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
String personID = request.getParameter("pid");
PrintWriter out = response.getWriter();
out.println("<HTML><HEAD><TITLE>Hello</TITLE></HEAD>");
out.println("<BODY><H1>Biography</H1>");
...
}
也许引号有问题,试试这个:
out.println("<a href = '/Persons/servlet/person?pid=" + id + "'>" + name + "</a>");
out.println("<a href = '/Persons/servlet/person?pid='" and+ id + "\"'>" + name + "</a>");
您的 href 属性值以单引号 '/Persons
开头并在 "pid" 之后以单引号结尾:?pid='
.
id 值及其后的双引号和单引号不是 HTML 元素属性值的一部分。
您可以使用 Validator 来验证您的 HTML 标记的正确性。
我正在使用 Tomcat 7。我有一个方法,其中有一个名字列表,这些名字在他们的传记页面上有 links。 link 基于他们的 id。然而,他们的 id 没有出现在 URL 中。当我单击 link 时,url 显示,localhost:8080/Persons/servlet/person?pid= 我不确定为什么不显示 ID。
我有一个登录名 class,它使用 doPost 来隐藏密码和用户名。这是生成人员列表及其 link 的页面。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
...
query = "SELECT * FROM persons";
rs = statement.executeQuery(query);
String name = "";
while(rs.next())
{
String id = rs.getString("id");
name = rs.getString("first_name") + " " + rs.getString("last_name");
out.println("<a href = '/Persons/servlet/person?pid='" + id + "\"'>" + name + "</a>");
out.println("<br/>");
}
}
单击 linked 时,它会进入处理传记的 Person.java class。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
String personID = request.getParameter("pid");
PrintWriter out = response.getWriter();
out.println("<HTML><HEAD><TITLE>Hello</TITLE></HEAD>");
out.println("<BODY><H1>Biography</H1>");
...
}
也许引号有问题,试试这个:
out.println("<a href = '/Persons/servlet/person?pid=" + id + "'>" + name + "</a>");
out.println("<a href = '/Persons/servlet/person?pid='" and+ id + "\"'>" + name + "</a>");
您的 href 属性值以单引号 '/Persons
开头并在 "pid" 之后以单引号结尾:?pid='
.
id 值及其后的双引号和单引号不是 HTML 元素属性值的一部分。
您可以使用 Validator 来验证您的 HTML 标记的正确性。