1

jspからローカルサーブレットを呼び出しています。サーブレットは単にjson文字列を返します。

URL url = new URL("http://myapp.appspot.com/myservlet");
URLConnection conn = url.openConnection();
conn.setConnectTimeout(5000);
InputStream is = conn.getInputStream();

StringWriter writer = new StringWriter();
IOUtils.copy(is, writer, "UTF-8");

String jsonStr = writer.toString();

ローカルとデプロイされたインスタンスの両方で機能するように、相対パスを使用してこれを行うことはできますか?

4

2 に答える 2

1

タグ付きのJSTLを使用できます

<c:import>   

または、投稿されたコードについては、

   String requestURL = request.getRequestURL().toString();
   String servletPath = request.getServletPath();
   String serverPath = requestURL.substring(0,requestURL.indexOf(servletPath));
   URL url = new URL(serverPath + "/myservlet");
于 2012-08-08T01:58:12.773 に答える
0

こういう意味ですか?

String urlString = "http://localhost/myservlet/";

localhostは127.0.0.1のエイリアスであり、常に「ローカルコンピューター」です。

ServletRequest.getServerPort()は、ユーザーが接続したポートを通知します。

これが発生している場所に応じて、実際に使用する可能性があるのはServletRequest.getRequestDispatcher()です。これは、ネットワーク層をバイパスし、サーブレットコンテナ内にとどまります。

HttpResponseをラップし、それをRequestDispatcherに送信してから、次のようなもので生成された文字列を抽出できます。

http://goo.gl/kRW1b
于 2012-08-07T15:43:35.133 に答える