我在html页面中有以下表格
<form name="input" action="sayHello1.jsp?param1=test1" method="get">
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form>
我输入值&#34; test&#34;在文本框中提交。
我希望在浏览器中看到提交的网址为
http://localhost:8080/helloWorld/sayHello1.jsp?param1=test1&user=test
但我将网址视为
http://localhost:8080/helloWorld/sayHello1.jsp?user=test
为什么呢?
答案 0 :(得分:2)
从元素提交者提交表单元素表单时 (通常是一个按钮),可选地设置了脚本提交标志, 用户代理必须执行以下步骤:
[...]
让查询成为使用表格数据集编码的结果 application / x-www-form-urlencoded编码算法,解释为 US-ASCII字符串。
让目标成为一个新的URL,它等于除此之外的动作 它的组件被查询替换(添加U + 003F QUESTION 如果合适,标记字符(?)。
基本上,它使用从表单参数生成的新查询字符串替换现有的查询字符串。
您的浏览器遵循规范。
答案 1 :(得分:1)
表单的实现似乎是重写查询字符串(不合并它)。要获得所需的行为,请在表单中添加<input type="hidden" name="param1" value="test1">
,并且不要尝试向操作网址添加值。
根据this answer,我们应该期待这种行为。
因此,您的浏览器会废弃现有的&#34;?...&#34;您的URI的一部分,并根据您的表单将其替换为新的。