兩個獨立部署的 Web 項目 (Project A、Project B),需在 A 的 Servlet 中向 B 的 Servlet 傳遞數據並跳轉頁面。
Servlet 間跨項目調用本質是 HTTP 請求/響應。不可直接調用對方實例方法,需通過網絡接口交互。
// Project A Servlet
response.sendRedirect("https://hostB:port/ProjectB/targetServlet?param1=value1¶m2=value2");
// Project A Servlet (使用 Apache HttpClient)
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://hostB:port/ProjectB/receiveServlet");
List params = new ArrayList<>();
params.add(new BasicNameValuePair("key", "value"));
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
CloseableHttpResponse response = httpClient.execute(httpPost);
// 解析響應,決定是否重定向或轉發給前端
若兩項目部署在同域或配置了 Session 共享,可將數據寫入 Session/Redis,跳轉時由 B 讀取。