2014-09-28 158 views
1

我有一個場景,其中有一個jsp,它有幾個超鏈接。其中一個鏈接就是這樣編碼的。JSP到Servlet參數傳遞

<a href="Example?op=srk>hyperlink 1</a> 
<!--The value srk is replaced dynamically in code--> 

上面的鏈接,將請求發送給名爲Example請求傳遞參數通過URL servlet的。由於它是一個超鏈接,請求被髮送到Servlet的doGet()方法。在這個過程中,我利用了請求參數,處理了一些東西並進一步將請求轉發給另一個jsp,併爲該請求附加了一個屬性(包含一些對象)。功能的作品,我得到了我需要的東西。但是,我覺得副作用或問題是瀏覽器中的URL具有可見的請求參數,如下所示。

http://localhost:8080/context/Example?op=srk 

我不希望看到正在發送的參數。首先,我的方法合理嗎?我的意思是,有沒有更好的替代方法來實現這一點。我正在使用核心J2EE(JSP和Servlets),沒有框架,也沒有JavaScript。

回答

0

當你點擊這個鏈接時,你正在向你的servlet做一個HTTP GET請求,這就是你看到你傳遞的參數的原因。您可以考慮使用表單或替代方法,以便您可以執行HTTP POST請求。在執行後,這不會在地址欄上。

1

我闡述@Sezin的答案,最好的方法是用POST方法去避免你的參數在url中可見。

正如您所說的,您正在填充op=srk變量中的動態值。您可以使用html表單將變量op以隱藏變量的形式存儲。

您可以使用表格中的submit按鈕,以便您可以處理servlet的doPost()中的請求。

希望這有助於!