歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

跨域Servlet調用Servlet的實現

跨域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