我如何将参数从 servlet 传递给另一个 servlet,该 servlet 也从 jsp 中接收了一些其他值...
我有一个 servlet,它获取日期、源和目标......在它转到另一个 jsp 页面后,用户输入一个总线 ID,现在我希望这个总线 ID 以及上一个表单中的日期进入另一个 servlet
假设您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?
方法有很多种。
如果你有一个标准的 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¶m2=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 消息服务)。