2014-09-28 161 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()中的请求。

希望这有助于!