JavaServletAPI:从URL中删除GET参数

JavaServletAPI:从URL中删除GET参数,java,jsp,jakarta-ee,get,servlet-3.0,Java,Jsp,Jakarta Ee,Get,Servlet 3.0,是否仍然需要从请求URL中删除GET参数?这样,当响应到达客户端时,窗口的位置将是一个URL,该URL将从GET参数中清除。是否可以在不执行任何重定向的情况下执行此操作,并且可以在服务器上访问传递的参数 谢谢 目的: 这是为了缩短URL。目前在我的站点中,链接将有一个处理程序,该处理程序将GET参数转换为哈希参数。在此之后,位置散列更改侦听器将执行AJAX请求(使用位置散列参数)以重新加载文档的某些部分。当尝试在新窗口/选项卡中打开链接时,我计划“清理”URL参数,并将其放入位置哈希中,由一些字

是否仍然需要从请求URL中删除GET参数?这样,当响应到达客户端时,窗口的位置将是一个URL,该URL将从GET参数中清除。是否可以在不执行任何重定向的情况下执行此操作,并且可以在服务器上访问传递的参数

谢谢

目的:

这是为了缩短URL。目前在我的站点中,链接将有一个处理程序,该处理程序将GET参数转换为哈希参数。在此之后,位置散列更改侦听器将执行AJAX请求(使用位置散列参数)以重新加载文档的某些部分。当尝试在新窗口/选项卡中打开链接时,我计划“清理”URL参数,并将其放入位置哈希中,由一些字符串分隔。如果无法“清理”URL,则可能会变得太长,因为还会有GET参数和location散列参数。

您可以使用带有
HttpServletRequestWrapper的Servlet
过滤器

在其
doFilter
方法中,您可以影响
请求

这是
过滤器
界面上的官方信息,这是关于
HttpServletRequestWrapper


最后,这是一个关于您想要做什么的好的SO页面。

GET参数是URL编码的,这就是它的定义方式 有几种编码方法可以使用,比如
base64
,但它可以被解码 如果您希望安全地将某些信息发送到服务器,您可以使用
POST
方法,
您还可以在
web.xml
中映射页面,并添加一个带有身份验证检查的过滤器,以避免用户在URL中玩游戏。

您不让请求参数出现在URL中的意图是什么?如果纯粹是为了美观,那么您可以始终使用REST样式的URL—很像Stackoverflow—其中参数是URL中的标记


否则,我认为客户端不可能请求某个
URL?param1=..
,然后只得到
URL
,而不需要从服务器重定向,或者原始请求是帖子。不同于

您无法从URL中删除任何内容。这是由协议设计决定的。如果不希望参数出现在查询字符串中,请使用POST方法而不是GET。