2011-12-16 45 views
1

我有以下的應用程序(比如應用1)在Tomcat其打開URL連接到另一個web應用(比如應用2)趴在端口8080 Tomcat上在我的程序中建立URL連接後,沒有得到請求/響應中的值?

String urlStr = "http://localhost:8080/myWebApp/xwiki/auth/my-auth!checkAuth.action" 
URLConnection conn = url.openConnection(); 
/Get the response 
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
StringBuffer sb = new StringBuffer();//Line1 

有了上面的代碼被擊中我的servlet坐在端口8888 AuthenticationServlet 8080端口被設置在請求中的屬性XWikiAuthentication並返回

request.setAttribute("XWikiAuthentication", "Successful"); 
return; 

,但我沒有得到我的應用程序App1該參數XWikiAuthentication的價值。我嘗試了兩種方法,只是在App1的第1行下方

方法1: - String line; ((line = rd.readLine())!= null){ sb.append(line); result = sb.toString(); }

Approach2: -

String Response=request.getAttribute("XWikiAuthentication"); 
String Response1=request().getParameter("XWikiAuthentication"); 
but got the value as nullthough iam expecting value as successfull 

我不流汗如何在APP2應用程序App1參數XWikiAuthentication一套價值?

更新: - 我使用Struts2的

回答

1

不知道我是否完全按照這個問題。 重新編譯它 - 你想打另一個web應用程序,它本質上是一個認證servlet,並且想要回讀用戶是否被認證?

上述假設 -

你應該把(在request對象)的用戶詳細信息,以驗證servlet和它裏面你應該設置在response最終地位問題,這是你應該讀什麼。 您可以將其設置爲響應中的http header值,也可以直接將其寫入Authentication servlet的outputstream

請記住 - 您發送請求並取回響應。見Using Url Connection

1

你可能想將設置在應用2的響應報頭和應用程序1.回讀

編輯

要設置標題值(應用程序2):

response.setHeader(name, value); 

要在客戶端讀取(應用程序1):

conn.connect(); 
value = conn.getHeaderField(name); 

你可以替代地直接寫入一些內容在應用程序2的HTTP響應流被讀取並在應用程序1爲適當處理。

response.getWriter().println("Authenticated!"); 
+0

感謝perception.Could你簡要介紹如何設置應用程序2中的響應標題? – 2011-12-16 05:57:47

+0

感謝很多。有效。我希望我能標記出你的答案(你的和Nrj)是正確的。 – 2011-12-16 07:06:17

0

你的問題具體該行需要清晰: - 「我不流汗如何參數XWikiAuthentication在應用1中APP2設置應用的價值?」

雖然,我在這種情況下,則懷疑如果您需要在響應中設置參數而不是請求。

相關問題