超链接到servlet

时间:2011-08-01 23:03:13

标签: java html jsp servlets hyperlink

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

在我的程序的一部分中,Servlet显示HTML表格中数据库中的所有元素,但它只显示ID和FirstName - 字段。我已将ID字段设置为超链接。到目前为止一切都很好。

但是,当用户点击ID超链接时,我希望将其转发到Servlet,显示他们点击的特定元素的ID, FirstName, LastName, and 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的超链接。到目前为止,这一切都在发挥作用。

然而,当我实际点击一个时,它不能做我想要的。说我在Joe面前点击了超链接2。然后我希望它能从数据库中显示2,Joe,Chang,37,但我不知道该怎么做。

所有超链接正在执行的是将请求转发到Servlet,其URL模式为DisplayPerson.do,并尝试获取ID参数,以便它可以获取具有该ID的元素并显示所有其他领域。

我知道如何显示所有字段如果我可以获取ID参数 - 但是当我点击每个不同的超链接ID时我不知道如何设置或发送不同的ID参数,它们都只是转发到同一个{{ 1}}但是这不知道请求是从哪个发送的。

如果可能的话,我还想避免URL附加,但如果这是唯一的方法,那么我就可以做到。有人可以解释如何做到这一点(或者即使)?

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

在第一步创建URL时,需要在链接本身中嵌入id参数。 这应该有效。

另一个提示是在浏览器中安装firebug并查看请求的发送方式。

答案 2 :(得分:0)

如果您不想将参数附加到链接,则可以选择为表格声明一个html表单(form.method = post和form.action = DisplayPerson.do)。假设您只想传递一个参数,在这种情况下为personid

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

答案 3 :(得分:0)

两个选项:

  1. 将参数附加到网址,但您不想这样做。

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

相关问题