缺少Java Servlet请求参数

时间:2015-01-26 09:39:54

标签: html servlets

我正在使用Tomcat 7.我有一个方法,其中有一个名称列表,这些名称有链接到他们的传记页面。该链接基于他们的ID。但是,他们的ID不会显示在网址中。当我点击url显示的链接时,localhost:8080 / Persons / servlet / person?pid = 我不确定为什么id没有显示。

我有一个使用doPost来隐藏密码和用户名的Login类。这是通过链接生成人员列表的页面。

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/>");
     }
}

单击链接后,它将进入处理传记的Person.java类。

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>");
     ...
}

2 个答案:

答案 0 :(得分:0)

可能引号出现问题,试试这个:

out.println("<a href = '/Persons/servlet/person?pid=" + id + "'>"  + name + "</a>");

答案 1 :(得分:0)

out.println("<a href = '/Persons/servlet/person?pid='" and+ id + "\"'>"  + name + "</a>");

您的href属性值以单引号'/Persons开头,并以&#34; pid&#34;:?pid='之后的单引号结束。

id值以及它后面的双引号和单引号不是HTML元素属性值的一部分。

您可以使用Validator验证HTML标记的正确性。