我有一个场景,其中有一个jsp,它有几个超链接。其中一个链接以这种方式编码。
<a href="Example?op=srk>hyperlink 1</a>
<!--The value srk is replaced dynamically in code-->
上面的链接会将请求发送到名为Example
的servlet,并通过url传递请求参数。由于它是超链接,请求将发送到Example
Servlet的doGet()方法。在那里我利用请求参数,处理一些东西并将请求转发到另一个jsp,为该请求附加一个属性(带有一些对象)。功能有效,我得到了我需要的东西。但是,我觉得副作用或问题是浏览器中的URL具有可见的请求参数,如下所示。
http://localhost:8080/context/Example?op=srk
我不希望看到正在发送的parms。首先,我的方法是否合理?我的意思是,有没有更好的替代方法来实现这一目标。我正在使用核心J2EE(JSP和Servlets),没有框架,现在没有JavaScript。
答案 0 :(得分:1)
我详细阐述了@ Sezin的答案,最好的方法是使用POST
方法,以避免在网址中显示您的参数。
正如您所说,您正在填充op=srk
变量中的动态值。您可以使用html表单将变量op
作为隐藏变量存储在表单中。
您可以使用表单中的submit
按钮,以便在servlet的doPost()
中处理请求。
希望这会有所帮助!!
答案 1 :(得分:0)
当您点击此链接时,您正在对您的servlet执行HTTP GET请求,这就是您查看要传递的参数的原因。您可以考虑使用表单或替代方法,以便您可以执行HTTP POST请求。在实现之后,这将不在地址栏上。