如何从 jsp 中的超链接调用 doPost() servlet

Posted

技术标签:

【中文标题】如何从 jsp 中的超链接调用 doPost() servlet【英文标题】:How to call doPost() servlet from a hyperlink in jsp 【发布时间】:2012-07-02 12:16:22 【问题描述】:

如何从jsp 呼叫servlet?但在这种情况下,我更喜欢使用doPost() 方法而不是doGet()

这是我的代码:

view.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" import="DSIP.*" import="java.util.ArrayList" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>DSIP.View</title>
</head>

<body>
<jsp:useBean id="ipList" scope="application" class="DSIP.IPBeanMapper"/>
<jsp:useBean id="bean" scope="application" class="DSIP.IPBean"/>
<form name="form1" method="post" action="viewS">
    <table  border="">
        <tr bgcolor="#0099FF">
            <td ><div align="center">ip</div></td>
            <td ><div align="center">username</div></td>
            <td ><div align="center">password</div></td>
            <td ><div align="center">maxRetry</div></td>
            <td ><div align="center">action</div></td>
        </tr>
        <%
            ArrayList<IPBean> list;
            list = ipList.getIPList();
            for (int i = 0; i < list.size(); i++)
                bean = list.get(i);
        %>
        <tr>
            <td><input name="ip"        type="text" size="15" value="<%=list.get(i).getIp()%>"></td>
            <td><input name="userName"  type="text" size="15" value="<%=bean.getUserName()%>"></td>
            <td><input name="password"  type="text" size="15" value="<%=bean.getPassword()%>"></td>
            <td><input name="maxRetry"  type="text" size="15" value="<%=bean.getMaxRetry()%>"></td>
            <td><a href="/ViewS?action=edit">edit</a> <a href="/ViewS?action=delete">delete</a>

            </td>
        </tr>
        <%
            
        %>
    </table>
    <input type="submit" name="Submit" value="Submit">

</form>
</body>
</html>

我打算使用链接(编辑和删除)从此页面调用一个 servlet 类(称为ViewS)。当我单击编辑并将值存储到数据库中时,我想使特定行中的某些文件可编辑。

而且,当我点击删除时,我想删除数据库中的记录,也想删除 jsp 中的记录视图。

所以请有人帮助我。

我尝试使用&lt;a href="/ViewS?action=edit"&gt;edit&lt;/a&gt;,但我知道这个电话是doGet()

非常感谢你帮助我。

【问题讨论】:

【参考方案1】:

您需要在点击链接时调用 javascript 函数,并且您需要从 javascript 提交将生成 HTTP POST 的表单

function submitMyForm()
 document.forms["yourFormId"].submit();

或者你可以发一个AJAX call to your servlet

【讨论】:

【参考方案2】:

AJAX 将是您的最佳选择。 从&lt;a&gt;onClick() 方法进行AJAX 调用

【讨论】:

以上是关于如何从 jsp 中的超链接调用 doPost() servlet的主要内容,如果未能解决你的问题,请参考以下文章

servlet中的doGet()与doPost()是怎

无法在jsp页面中调用servlet的doPost()方法[重复]

servlet中为啥doget要调用dopost?默认调用哪个?默认都调用?

打开应用程序并从电子邮件中的超链接传递参数

点击jsp页面上的超链接后怎么找到对应的servlet

java.lang.NumberFormatException:doPost 中的空错误