我将一个请求作为带有数据的URL发送到servlet,但默认情况下,servlet正在修改数据并按请求发送。您能否建议如何使用我传递给servlet的数据保持请求URL保持不变?
示例: - 当我将数据传递给servlet
时当它在servelt中使用上述url作为请求时,如字符串abc = request.getParameter(“val”),val属性会自动修剪并指定为“val = PRCTXT | 12345”,但它应该像“ val = PRCTXT | 12345& ABCDEFG“。请帮帮我。
答案 0 :(得分:0)
servlet解释每个&在URL中作为新参数的开头。因此,当它看到& ABCDEFG时,它认为你发送了一个名为ABCDEFG的新参数,没有任何价值(虽然这在技术上是一个"无键值"根据规范)。
要解决此问题的两件事,首先是当您想要实际发送&时,请改用%26。这将被跳过参数的代码跳过,但转换为真实的&在参数的值中。
其次是用+替换空格。 URL中的空格有时会起作用,但可能会有问题。
因此,您的实际请求网址应如下所示:
http://localhost/helloservlet/servlet/ppd.abcd.build.coupons.CouponValueFormatterServlet?dsn=frd_abc_abcde&lang=ENG&val=PRCTXT|12345+%26ABCDEFG
如果您在javascript中构建这些参数,可以使用encodeURIComponent()为您修复所有问题字符。所以你可以这样做:
var userInput = *get some input here*
var addr = 'http://www.example.com?param1=' + encodeURIComponent(userInput);