Java 从servlet访问参数的一种特殊情况,在servlet中参数被加密并包含&、=value

Java 从servlet访问参数的一种特殊情况,在servlet中参数被加密并包含&、=value,java,servlets,request,httprequest,Java,Servlets,Request,Httprequest,我需要实现一个URL,它看起来像下面的一样。值得注意的是,我只需要访问它的一个参数,并且该参数应该包含的值是加密的,其中可能包含&和= 例1 www.abc.com/disp?v=qww78agd= 上述url中的参数v包含值qww78agd= 假设加密结果如下所示 例2 www.abc.com/disp?v=qww7&f=iuy68= www.abc.com/disp?v=qww7&f==iuy68= 然后servlet将把v和f作为两个独立的参数,而我想从参数中获得qww7&f==iuy68

我需要实现一个URL,它看起来像下面的一样。值得注意的是,我只需要访问它的一个参数,并且该参数应该包含的值是加密的,其中可能包含&和=

例1

www.abc.com/disp?v=qww78agd=

上述url中的参数v包含值qww78agd=

假设加密结果如下所示

例2

www.abc.com/disp?v=qww7&f=iuy68=

www.abc.com/disp?v=qww7&f==iuy68=

然后servlet将把v和f作为两个独立的参数,而我想从参数中获得qww7&f==iuy68=from

我考虑从请求HashMap中获取所有键值对,并通过&和=。但问题是,两个连续的=符号与示例2的第二种情况相同,它被视为仅与请求键、值映射中的一个相等。因此,我的其他标志丢失了

是否有任何方法可以让我获得servlet上的查询字符串部分,并自己使用字符串处理对其进行解析? 还是其他方法?

很简单


使用request.getQueryString方法获取查询字符串部分,就像我使用自己的字符串处理逻辑处理的servlet上的字符串一样。

您应该使用URL编码&。这些参数无效。诸如=或&之类的特殊字符由浏览器编码,并由服务器自动解码。您不需要做任何特殊的事情,除非自己生成url时对参数值进行编码:Chris:servlet是一个小部件实现,在iframe中提供了此类url。出于安全考虑,没有机会嵌入任何类型的js。编码器用于生成URL。要从请求中获取参数,请使用request.getParameter。查询字符串不应首先在参数值中包含&和=字符,因为这会使查询字符串无效。修复生成这些错误查询字符串的代码部分。如果它应该生成一个有效的查询字符串,但它生成了一个无效的查询字符串,那么它肯定需要修复。如果不应该生成查询字符串,则不要将输出用作查询字符串。对输出进行编码,并生成一个查询字符串,如encrypted=url编码的加密输出。