簡體   English   中英

如何在不執行事件的情況下將值從JSP傳遞到Servlet?

[英]How to pass values from JSP to Servlet without performing event?

我創建了一個portlet,在其中我在servlet中執行業務邏輯。 但是我在jsp頁面上獲得了liferay登錄用戶的詳細信息。 因此,現在我需要在訪問servlet時傳遞用戶詳細信息。 這是我的JSP代碼,

<%
 String fullname= user.getFullName();
 out.println("Full name is: "+fullname+ "...");
 long id = themeDisplay.getLayout().getGroupId();
 out.println("Site ID is: "+id+ "...");
 long userId = themeDisplay.getUserId();
 out.println("User ID is: "+userId+ "...");
 %>

我需要在servlet中訪問上述詳細信息。 我怎樣才能做到這一點? 每個登錄用戶都有一些不同的憑據,因此所有值都應在servlet中進行更新並需要訪問。 在不執行任何事件的情況下訪問這些值的最佳方法是什么。 我正在從另一個Web服務訪問servlet。 我需要在Get OR Post方法中訪問

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                 doPost(request, response);
//I need to access those login user information here.. 
        }

這將真的很難做到(“幾乎不可能”中的“非常困難”):當您在servlet中時,標識實際用戶的所有門戶網站代碼都不會運行。

實際上,當您查看HttpServletRequest的portlet時:這將直接指向門戶,並且僅在以后使用正確構造的上下文(例如,登錄用戶)轉發到portlet。

當您查看servlet時,它將直接指向您的servlet。 您的servlet通常生活在完全不同的應用程序上下文中。 因此,根據servlet規范,它將與門戶環境完全分開。

您發現減輕此限制的所有內容都會有些駭人聽聞。 有些人使用cookie或請求參數。 但是他們都或多或少地引入了問題。 特別是當談到訪問您的servlet的Web服務時,就無法使用Cookie。

為了實現良好的可維護性,我的建議是更改您的體系結構。 不幸的是,您沒有提供足夠的上下文來建議將架構更改為哪些內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM