歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 跨域Servlet調用Servlet的實現

跨域Servlet調用Servlet的實現

日期:2017/3/1 9:53:18   编辑:Linux編程

跨域Servlet調用Servlet的實現

跨域後,Servlet容器之間彼此是未知的環境,也不能獲取到對方的ServetContext。因此使用內部跳轉和重定向(需要帶請求參數)調用都是錯誤的,也是無效的。

通過HttpClinet模擬發起請求,可以實現跨域Servlet調用Servlet。

實現方法:在Servlet的service方法中創建httpclient對象,來發起第二次請求。將請求轉發個另一個域的servlet。

public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//todo:執行第一個請求的處理

....... //發出第二次請求,調用第二個Servert:postRemotetUrl
//建立HTTP請求
HttpClient httpClient = new DefaultHttpClient();
//注冊證書
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
//設置請求超時時間
httpClient.getParams().setIntParameter(HttpConnectionParams.SO_TIMEOUT, 20000);
//設置連接超時時間
httpClient.getParams().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, 30000);
//建立POST請求
HttpPost httpPost = new HttpPost(postRemotetUrl);
httpPost.setEntity(new StringEntity(msg));

//提交httppost請求
HttpResponse httpResp = httpClient.execute(httpPost);
httpClient.getConnectionManager().shutdown();
.......

}

Copyright © Linux教程網 All Rights Reserved