将数据从jsp传递到来自html表的servlet

时间:2012-12-18 11:45:53

标签: html jsp session servlets

我正在使用JSP和Servlets开发Web应用程序。 在该应用程序中,我必须在html表中显示来自数据库表stud(studID,name,add)的数据,并且表中的每一行都将在最后一列中具有与之关联的超链接。点击该超链接后,我想从表格中获取(studID)...

到目前为止,我已经从数据库中获取数据,然后将其放入列中,然后为每行添加超链接..但是我无法从与超链接相关联的html表中获取(studID).. < / p>

提前致谢....

源代码:

<% 
String[][] data = (String[][])request.getAttribute("data"); 
String[] cNames = (String[])request.getAttribute("columnNames"); 
//headings 
%> 
<table> 
<tr> 
<% 
for(int i=0;i<cNames.length;i++) { 
%> 
<th>
<%= cNames[i] %>
</th>
<% 
} 

//data if(data!=null) 
for(int i=0;i<data.length;i++) { 
%>
<tr> 
<% 
for(int a=0;a<3;a++) {
%> 
<td>
<%= 
data[i][a] 
%>
</td> 
<% 
//hyperlink 
if(a==2) { 
%> 
<td>
<a href="PlanProtocol" id=<%=i%> onclick="<% session.setAttribute("ID","p2"); %>" >Edit</a></td> 
<% 
} 
} 
%>
</tr> 
<% } %> 
<tr>
</table>

3 个答案:

答案 0 :(得分:2)

您可以将ID作为查询字符串传递到网址中。简单地:

  <a href="myservlet?id=<%=stuid%>">My Link</a>

会工作吗?但是,如果您使用的是JSTL或其他标记库,那么您可以执行以下操作:

  <c:url value="/myservlet" var="myURL">
     <c:param name="id" value="1234"/>
  </c:url>

  <a href="<c:out value="myURL">mylink</a>

这有诸如url编码等优点。


因此,要在发布的代码中将ID添加到网址,您可以:

  <a href="PlanProtocol?id=<%=i%>" >Edit</a>

网址最终会像这样:PlanProtocol?id=1234

在Servlet中,您可以通过以下方式获取参数:

   request.getParameter("i");

但是,正如我上面提到的,您可能希望使用类似JSTL的标记库,而不是将这些scriptlet放在页面中。有几个优点。

答案 1 :(得分:1)

认为你应该在JSP中提取studID并将studID格式化为URL,html页面的查询字符串。 (?studID = xxxxx)因此servlet将知道studID。

答案 2 :(得分:0)

您可以在jsp页面中使用request.setAttribute("studID","value");来设置值,并在servlet中使用request.getAttribute("studID");来获取值