通过URL传递参数

时间:2010-10-25 19:03:33

标签: java servlets url-rewriting

我编写了一个servlet,它在数据库中查询消息列表,输出被定向到servlet生成的html。用户可以选择通过单击按钮

来查看所选消息
ResultSet rs = null;
try
{
    startPage(response);
        rs = statement.executeQuery(sql);
        while(rs.next())
        {
            out.println("<tr>");
            out.println("<td align=center>"+rs.getString("Heading")+"</td>");
            out.println("");
            out.println("<td align=center>"+rs.getString("Username")+"</td>");
            out.println("");
            out.println("<td align=center>"+rs.getString("DatePosted")+"</td>");
            out.println("");
            out.println("<td align=center><form action=dbShowMessage?action='"+rs.getString("Heading")+"'method=post><input value=VIEW type=submit></form></td>");
            out.println("</tr>");
        }

    endPage(response);
}

代码编译没有任何错误,但是当我使用Web服务器调用它时,HTML页面显示时没有包含结果或按钮的表,但是一旦我删除它就会显示所有内容;我在这做错了什么。

或者,我尝试使用URL进行如下操作:

out.println("<tr>");
out.println("<td align=center><a href=dbShowMessage?title="+rs.getString("Heading")+">"+rs.getString("Heading")+"</a></td>");
out.println("");
out.println("<td align=center>"+rs.getString("Username")+"</td>");
out.println("");
out.println("<td align=center>"+rs.getString("DatePosted")+"</td>");
out.println("");
out.println("</tr>");

同样出来也是如此;调用后显示的链接和表格,但只要我创建引用相同的故事。

2 个答案:

答案 0 :(得分:1)

不确定它是否解决了您的问题,但您可能希望在method属性之前添加空格,即更改

...Heading")+"'method=post...

...Heading")+"' method=post...

除此之外,您的标题实际包含哪些字符?没有引用标记我认为...

答案 1 :(得分:0)

你有无效的HTML ......

使用此行:

out.println("<td align=center><form action=\"dbShowMessage?action='"+rs.getString("Heading")+"'\" method=\"post\"><input value=\"VIEW\" type=\"submit\"></form></td>");