如何将参数传递给servlet

Posted

技术标签:

【中文标题】如何将参数传递给servlet【英文标题】:How to pass parameter to servlet 【发布时间】:2010-09-19 01:04:27 【问题描述】:

如何将参数从 JSP 中的页面 useBean 传递到 Java 中的 servlet?我的表单中有一些数据通过提交按钮没有问题,但无法发送其他任何内容。请帮忙?这是我的代码:

<input name = "deleteGameButton" type = "submit" value = "Delete"
 onclick = "submitToServlet('DeleteGameServlet');">

这里是对应的javascript

 function submitToServlet(newAction)
 
   document.userGameForm.action = newAction;
 

我希望 servlet 能够访问 userBean

 <jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />

【问题讨论】:

【参考方案1】:

你这里有点乱。

onclick() 是 Javascript 并在客户端执行。它没有(直接)方法来更新会话范围的 bean。该 bean 留在服务器端,并在 html 页面生成时使用。要将参数传递回 servlet,您需要使用良好的旧表单字段并提交表单。

向表单添加更多字段,在提交之前设置它们的值,然后提交。

在Servlet中调用request.getParameter("name");

附: 使用 STRUTS 自动化这类事情。 :-) Struts 完全符合您的要求:在将参数传递给操作之前,它使用这些参数填充 bean。透明。

【讨论】:

嗨,谢谢。最后我确实在表格中使用了额外的字段。但我认为必须有一些更简单的东西......我想那将是 STRUTS。但它现在可以正常工作,所以我将来会使用 STRUTS,最后期限迫在眉睫。谢谢。【参考方案2】:

你好,试试下一个标签:

<jsp:useBean id = "userBean" scope = "session" class = "org.project.User"/>
 <jsp:setProperty name="beanName" property="propertyname" value="value"/>
</jsp:useBean>

更多here

祝你好运!

【讨论】:

此标签将在页面生成期间更新服务器端的 bean。这家伙(显然;很难确定)想要提交一个表单来更新会话中的 bean。 好的,那么 AJAX(或任何推荐的 STRUTS 框架)是解决方案,因为服务器端和客户端之间的通信必须在幕后完成,对吧? 嗨,谢谢... 是的,我需要将参数从 jsp 代码透明地传递到 servlet 的东西。我会尝试使用 STRUTS,谢谢。【参考方案3】:

这完全取决于您要做什么。

&lt;jsp:useBean id = "userBean" scope = "session" class = "org.project.User" /&gt;

标签将允许您在 jsp 中使用会话的 userBean 属性。如果 session 中没有 userBean 属性,它将创建一个新的(使用 org.project.User 的默认构造函数)并将其放置在 session 中。

然后,当您访问 servlet 时,您可以使用以下命令检索它:

User user = (User)request.getSession().getAttribute("userBean");

【讨论】:

【参考方案4】:
 getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");         
 dispatcher.forward (request, response);

【讨论】:

以上是关于如何将参数传递给servlet的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SwiftUI 将参数传递给 Button 的操作

如何将多个重复的参数传递给 CUDA 内核

jQuery UI 问题。如何将参数传递给函数

如何将参数传递给配置单元视图,以便视图根据传递的内容进行更改?

如何通过 JCL 将参数传递给 REXX 程序

如何将条目参数传递给 Xamarin MVVM 视图模型