一尘不染

Servlet request.getParameter()始终返回“ null”

jsp

我已经阅读了所有相关问题,尝试了所有被接受的答案,但我仍然没有运气。

我有一个在tomcat上运行的网站,其子页面/ Demo /具有四个文本字段和一个Submit按钮。提交按钮如下所示

 <form method="post" action="DemoServlet">
                 <input type="hidden" name="form_action" value="write" />
                 <table>
                    <tr>
                       <td>
                          First Name:
                       </td>
                       <td>
                          <input type="text" 
                             name="firstname" />
                       </td>
                    </tr>
                    <tr>
                       <td>
                          Last Name:
                       </td>
                       <td>
                          <input type="text" 
                             name="lastname" id = "lastname" />
                       </td>
                    </tr>
                    <tr>
                       <td>
                          Email:
                       </td>
                       <td>
                          <input type="text" 
                             name="recipient" />
                       </td>
                    </tr>
                    <tr>
                       <td>
                          Phone1:
                       </td>
                       <td>
                          <input type="text" 
                             name="phone" />
                       </td>
                    </tr>
                    <tr>
                       <td>
                          <input type=button onClick="location.href='../demo-servlet'" value='Submit'/>
                       </td>
                       <td>
                       </td>
                 </table>
              </form>

该/ demo-servlet在web.xml中指定如下

 <servlet>
    <servlet-name>DemoServlet</servlet-name>
    <servlet-class>PACKAGENAME.DemoServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>DemoServlet</servlet-name>
    <url-pattern>/demo-servlet</url-pattern>
</servlet-mapping>

该servlet如下所示

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

    // Retrieve First Name from /Demo/ text field
    firstName = request.getParameter("firstname");

    // Retrieve Last Name from /Demo/ text field
    lastName = request.getParameter("lastname");
    /* MORE CODE HERE */
    request.getRequestDispatcher("/WEB-INF/confirmation.jsp").forward(request, response);
}

然后将其转发到我的Confirmation.jp文件,表明该过程已成功完成。

我的问题是,在调用request.getParameter()函数之后,变量和变量都返回值“ null”。

有人知道为什么会这样吗?


阅读 260

收藏
2020-06-10

共1个答案

一尘不染

表单标签上的方法是 post, 但是您已经在servlet中实现了 doGet 。同样,对表单标签执行的操作是
DemoServlet, 但应类似于 ../demo-servlet。 您可能根本不需要 onClick

2020-06-10