我已经阅读了所有相关问题,尝试了所有被接受的答案,但我仍然没有运气。
我有一个在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”。
有人知道为什么会这样吗?
表单标签上的方法是 post, 但是您已经在servlet中实现了 doGet 。同样,对表单标签执行的操作是 DemoServlet, 但应类似于 ../demo-servlet。 您可能根本不需要 onClick 。