如何将参数从servlet传递到另一个servlet,这个servlet刚收到jsp中的其他一些值......
我有一个获取日期,来源和目的地的servlet ...在进入另一个jsp页面后,用户输入一个总线ID,现在我想要这个总线ID以及上一个表单的日期得到进入另一个servlet
答案 0 :(得分: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¶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消息服务)。
答案 1 :(得分:0)
假设您的Servlet
处于相同的上下文中并且两个请求都在同一个会话中一个接一个地发生,那么执行此操作的方法是将参数值保留在一个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?