【问题标题】:submit button in JSP does not trigger doPost in ServletJSP中的提交按钮不会触发Servlet中的doPost
【发布时间】:2012-07-21 11:05:27
【问题描述】:

我有一个位于 .jsp 文件 (yarntree.jsp) 中的表单。当用户通过位于外部 js 文件 (map.java) 中的 javascript 函数单击 google 地图时,会填充该表单。我想将该数据发送到 sql 数据库,然后重新显示原始的 jsp 页面,现在表单为空。其代码位于 .java 文件 (YarnTreeServlet.java) 中。映射在 web.xml 中

我正在使用地图 API 的 V3 以及 appengine。

网络应用可以在这里看到:

问题:提交按钮不会导致将任何内容发送到 doPost 方法。

我在 javascript 中添加了一些代码以将值写入控制台,并且这些值已正确填充。我检查了查询,如果 doPost 工作,它将正确插入。我花了几个小时在这上面,并且不知所措。是否有某些原因导致我无法访问表单中的值,一旦它们被填充?我知道 servlet 映射可能是问题的一部分,但我尝试了许多变体但没有成功。在这一点上,我无法判断问题出在 js、jsp、表单、doPost 还是 web.xml 中。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript forms jsp servlets post


    【解决方案1】:

    如果我错了,请纠正我,但我在 <form> 标签中看不到 servlet url。

      <form id="createMarkerForm" 
            method="post" 
            accept-charset="utf-8" 
            action="servletUrl">
    

    并且 doPost 没有正确覆盖。

     @Override
     public void doPost(HttpServletRequest req, 
                        HttpServletResponse resp) 
                            throws ServletException, IOException{    
     }  
    

    【讨论】:

    • @Franky 嗨,感谢您这么快回复。我对您的回答有 2 个问题:您的意思是没有正确覆盖?它不应该说@Override吗?还是应该有一个完全不同版本的方法?表单操作让我感到困惑 - servlet url 是否与具有 doPost 的 .java 文件的名称相同?我还包含了 web.xml 文件,希望如果是映射,有人可以帮助我弄清楚应该去哪里。
    • 我建议一个关于 servlet 及其映射的好教程,它可能非常有用!祝你好运。
    • 我已经经历了其中的一些——但没有人解释表单操作如何与 web.xml 关联或表单如何与 Servlet 关联——即重定向和转发。相信我,我最不想做的就是在我崇敬的网站上展示我的无知,但我真的陷入了循环的变化和希望,因为我知道应该如何设置这三个。不过,感谢您的尝试。
    • @user1545253 - 您需要设置&lt;form action="new" ...&gt; 属性。你试过吗?
    • 在表单中,我设置了表单action="new"。我还仔细检查了我的 doPost 方法实际上有 @Override 标签,我只是在剪切和粘贴中错过了它。我将编辑原始代码以反映当前状态。我还包括了那个 servlet 的 web.xml 位。另外,非常感谢!
    【解决方案2】:

    所以,事实证明我需要执行 'doGet' 而不是 doPost。据我了解,这是因为我需要通过 jquery 处理的参数值,因为即使在 javascript 中也是 onclick 的结果。

    感谢您的所有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 2017-01-05
      • 1970-01-01
      • 2018-07-14
      相关资源
      最近更新 更多