Java 指向servlet的超链接

Java 指向servlet的超链接,java,html,jsp,servlets,hyperlink,Java,Html,Jsp,Servlets,Hyperlink,我有一个java程序,可以访问带有ID、FirstName、LastName、Age列的数据库。(ID是主键,数据库中没有两个元素具有相同的ID) 在我的程序中,Servlet在HTML表中显示数据库中的所有元素,除了它只显示ID和FirstName-字段。我已将ID字段设置为超链接。到目前为止还不错 但是,当用户单击ID超链接时,我希望它将它们转发到一个Servlet,该Servlet显示他们单击的特定元素的ID、FirstName、LastName和Age。假设这是HTML显示的表: 第1

我有一个java程序,可以访问带有
ID、FirstName、LastName、Age列的数据库。(ID是主键,数据库中没有两个元素具有相同的ID)

在我的程序中,
Servlet
在HTML表中显示数据库中的所有元素,除了它只显示ID和
FirstName
-字段。我已将ID字段设置为超链接。到目前为止还不错

但是,当用户单击ID超链接时,我希望它将它们转发到一个
Servlet
,该Servlet显示他们单击的特定元素的
ID、FirstName、LastName和Age
。假设这是HTML显示的表:

  • 第1行:
    [ID=1,FirstName=Jim]
    ,和
  • 第2行:
    [ID=2,FirstName=Joe]
数据库中的实际数据为:

  • 第1行:
    [ID=1,FirstName=Jim,LastName=Smith,Age=25]
    ,和
  • 第2行:
    [ID=2,FirstName=Joe,LastName=Chang,Age=37]
在显示表ID字段中有Jim和Joe的超链接。到目前为止,这一切都在起作用

然而,当我实际单击一个时,它并不能满足我的需要。假设我在乔面前点击了超链接2。然后我希望它能从数据库中显示2,Joe,Chang,37岁,但我不知道怎么做

超链接所做的一切就是将请求转发到一个
Servlet
,该Servlet的URL模式为
DisplayPerson.do
,并尝试获取ID参数,以便获取具有该ID的元素并显示所有其他字段

如果我可以得到ID参数,我知道如何显示所有字段,但我不知道在单击每个不同的超链接ID时如何设置或发送不同的ID参数,它们都只是转发到同一个
Servlet
,但这不知道请求是从哪一个发送的


如果可能的话,我也希望避免添加URL,但如果这是唯一的方法,那么我可以这样做。有人能解释一下如何做到这一点吗(或者即使是这样)?

第一次回复时,您似乎已经拥有了所需的所有内容,那么您为什么要向服务器发送另一个请求?除非您想在服务器上做一些全新/不同的事情,否则更好的方法是使用客户端javascript在单击URL时显示所需内容。基本上,将所有内容作为(第一个)servlet的响应发送回客户机,但首先要隐藏不希望显示的信息。形成URL,使其具有附加到javascript函数的onclick事件。java脚本函数可以接受标识符或其他内容,然后在客户端上动态显示这些内容。

因此基本问题是。。 但我不知道在单击每个不同的超链接ID时如何设置或发送不同的ID参数,它们都只是转发到同一个Servlet,但这不知道请求是从哪个Servlet发送的。

如何创建超链接?它们需要包含与特定记录关联的id。所以超链接应该看起来像'http://yourservername/yourservletname?id=123"

在第一步创建URL时,需要将id参数嵌入链接本身。 这应该会让它起作用


另一个技巧是在浏览器中安装firebug,并查看请求是如何发送的。

如果不想在链接中附加参数,另一种方法是为表声明html表单(form.method=post和form.action=DisplayPerson.do)。假设您只想传递一个参数,在本例中为personid

  • 对于每一行,使链接调用一个javascript函数,将与该行关联的personId作为参数,例如postViewPerson('1'),其中动态生成参数“1”
  • 有一个名为clickedPersonid的特殊隐藏输入
  • js函数(例如postViewPerson)将参数值分配给clickedPersonid并提交表单
  • 隐藏的输入现在有一个值,servlet可以通过request.getParameter(“clickedPersonid”)获得该值
  • 两种选择:

  • 将参数附加到URL,但您不想这样做

  • 创建提交按钮而不是链接,每个记录有多个表单,您甚至可以为请求指定POST


  • 队形是个玩笑,对吧?你说的队形是什么意思?如果你是指我格式化“表格”的方式,我只是指出它显示的信息-实际表格的格式很好,或者我没有格式化我原始帖子中的任何文本,有没有一种不附加url的方式?另一种方式是h11deo在回复中描述的方式。如果不想在浏览器中显示id,可以使用ajax。