java - 从 JSP 调用 Servlet 的方法

标签 java html jsp servlets

我正在使用 JSP 和 Servlet 开发 Web 应用程序。

我想在用户单击“更新”按钮时从 JSP 页面调用 servlet 的方法。

<input type="button" value="Update" onclick="<%MyServletName.Update(request, response);%>"></input>

当我点击“更新”按钮时,这个方法调用了 servlet,但问题是当表单加载时,这个方法被自动调用。

提前致谢......

源代码....

<%@page import="MyPackageName.MyServletName"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Update</title>
</head>
<body>
<form>
<%
String[][] data = (String[][])request.getAttribute("data");
String[] columnNames = (String[])request.getAttribute("columnNames");
//fill the table data
if(columnNames.length!=0 && data.length!=0)
{
%><table><%
}
for(int i=0;i<data.length;i++){
%>
<tr> <td><%= columnNames[0] %></td> <td><input type="text" name="text1" value="<%= data[i][0] %>"></td> </tr>
<tr> <td><%= columnNames[1] %></td> <td><input type="text" name="text2" value="<%= data[i][1] %>"></td> </tr>
<tr> <td><%= columnNames[2] %></td> <td><input type="text" name="text3" value="<%= data[i][2] %>"></td> </tr>
<%
}
%>
<tr>
<td></td>
<td><input type="button" value="Update" onclick="<%PlanProtocolEdit.Update(request, response);%>"></input></td>
</tr>
</table>
</form>
</body>
</html>

有什么方法可以在不调用 servlet dogGet() 和 doPost() 方法的情况下调用 dogGet() 和 doPost() 以外的 servlet 方法?

最佳答案

您应该在表单本身而不是实际的输入按钮上指定操作。

如果你在表单上定义一个 Action 。例如

表单提交按钮会将表单提交到该 URL。例如

<form action="/mypath/someurl">
    <input type="submit" value="Submit" />
</form>

您可以向 form 标记添加一个附加属性,以指定请求是 get 还是 post

<form action="/mypath/someurl" method="POST">

将发送一个 post 请求,然后您可以使用 handlePost 方法在您的 Servlet 中获取它

应该使用上面的方法,当前您正在尝试在 javascript onclick 事件上调用 Java 方法。这是不正确的,它没有按照您的想法行事。

PlanProtocolEdit 中的代码。更新应该在 servlet 的 doGetdoPost 方法中,这将通过如上所述配置您的表单来触发。

关于java - 从 JSP 调用 Servlet 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13968928/

相关文章:

java - 为什么这个 Java UDP 数据包长度太长?

jquery - 使用 jQuery 删除只有一个空格的元素

jsp - 矢量: References to generic type Vector<E> should be parameterized

java - 使用 JSP 显示 <option> 文本而不是 "value"值

java - 在eclipse IDE中进行java调试期间,相同的变量在 "expression view"中以不同的图标显示不同

java - AudioInputStream() 不会停止

java - spring属性解析器如何工作?

html - 如何固定工具提示相对于 HTML 文本框的位置?

javascript - 如何在选项标签中为同一个名称设置多个值?

java - 无法将无字符串参数传递给 TAG 文件