zoukankan      html  css  js  c++  java
  • form表单提交路径action="" 时的一种特殊情况

    一、说明:

    当页面的form表达的action=""时,表示表单会提交到当前页面,但是如果当前页面的URL里已经带有一个参数了,每次提交表达时这个参数依然存在,不管form表单里有没有提交该参数。

    例如:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    System.out.println("userid="+request.getParameter("userid"));
    System.out.println("username="+request.getParameter("username"));
    %>
    <html>
      <head>
      <title>My JSP 'index.jsp' starting page</title>
    </head>
      <body>
        This is my JSP page. <br>
        <form method="post" id="submit" action="">  
        	<input type="text" name="username" id="username" value=""/> username<br>
        	<input type="submit" value="提交"/>
        </form>
      </body>
    </html>
    

    若访问URL为:http://localhost:8080/MyWebPro/index.jsp?userid=1

    则控制台打印:

    userid=1
    username=null
    

    输入username提交表达可以发现后台打印:

    userid=1
    username=jack
    

    因此,可以发现,如果action提交到当前页面时,如果当前页面URL里带有参数,则每次提交表单时该参数仍然会被提交。

    二、总结:

    之前没有遇过这种情况,今天自己动手测试了一下并记录下来以备查询。

  • 相关阅读:
    记ByteCTF中的Node题
    Hooks中的useState
    IntersectionObserver对象
    Service Worker的应用
    使用 SpringBoot 构建一个RESTful API
    创业和技术有什么相通的“底层逻辑”?
    SpringBoot Profiles 多环境配置及切换
    SpringBoot Logback 日志配置
    应用分层和领域模型规约
    SpringBoot 整合 MyBatis,实现 CRUD 示例
  • 原文地址:https://www.cnblogs.com/crazytrip/p/5476802.html
Copyright © 2011-2022 走看看