0

我如何将参数从 servlet 传递给另一个 servlet,该 servlet 也从 jsp 中接收了一些其他值...

我有一个 servlet,它获取日期、源和目标......在它转到另一个 jsp 页面后,用户输入一个总线 ID,现在我希望这个总线 ID 以及上一个表单中的日期进入另一个 servlet

4

2 回答 2

0

假设您Servlet的 s 在相同的上下文中并且两个请求一个接一个地发生在同一个会话中,这样做的方法是将您获得的参数值保留在一个中Servlet,以便它们可用于第二个Servlet

String dateStr = request.getParameter("date"); // make sure to perform null checks
HttpSession session = request.getSession(true);
session.setAttribute("date", dateStr);

参数值现在存储在HttpSession属性中。Servlet只要您仍然在同一个HttpSession.

HttpSession session = request.getSession(true);
String dateStr = (String) session.getAttribute("date");
// you'll want to do null checks here too
// what if the requests were sent out of order?
于 2013-09-15T22:56:43.297 回答
0

方法有很多种。

如果你有一个标准的 servlet 容器(如 Apache Tomcat),那么我会通过 GET 或 POST 调用将参数传递给另一个 servlet(即使用 Apache Http 客户端)。

下面是使用 Apache HTTPClient 4 的 GET 调用示例

//create the HttpClient
HttpClient client = new DefaultHttpClient();
//point the url to call
HttpGet request = new HttpGet("http://127.0.0.1/otherservlet?id=1&param2=hello");
//execute the call and consume the response
HttpResponse response = client.execute(request);

// Get the response, if any
BufferedReader rd = new BufferedReader
  (new InputStreamReader(response.getEntity().getContent()));

String line = "";
while ((line = rd.readLine()) != null) {
  textView.append(line);
} 

否则,如果您可以使用成熟的应用程序服务器,我会使用 JSM(java 消息服务)。

于 2013-09-15T21:19:16.690 回答