java servlet中的html表单处理

时间:2011-03-01 21:03:26

标签: java html servlets

我正在构建一个java servlet来响应某些HTML表单。这是一个简单的测试形式:

 <FORM action="http://somesite.com/prog/adduser" method="post">
    <P>
    <LABEL for="firstname">First name: </LABEL>
              <INPUT type="text" id="firstname"><BR>
    <LABEL for="lastname">Last name: </LABEL>
              <INPUT type="text" id="lastname"><BR>
    <LABEL for="email">email: </LABEL>
              <INPUT type="text" id="email"><BR>
    <INPUT type="radio" name="sex" value="Male"> Male<BR>
    <INPUT type="radio" name="sex" value="Female"> Female<BR>
    <INPUT type="submit" value="Send"> <INPUT type="reset">
    </P>
 </FORM>

在服务器端,我得到了HttpRequest。但是当我得到这样的参数时:

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    String firstName = req.getParameter("firstname");
    String lastName = req.getParameter("lastname");
    String sex = req.getParameter("sex");
    String email = req.getParameter("email");

}

只有“性”才行。我已经在这几个小时没有理解为什么“性”与其他人不同。所有其他参数均为​​空。好吧,它是唯一的“无线电”类型,但是有一种特殊的方法来获取其他参数吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

在HTML表单中,为Input值赋予Name属性非常重要,ID属性仅帮助页面中的Javascript更好地找到您的Input元素。

我注意到你错过了几个输入元素的Name属性。

答案 1 :(得分:4)

您需要将name属性与其余输入标记一起添加,就像使用sex输入标记一样:

<FORM action="http://somesite.com/prog/adduser" method="post">
<P>
<LABEL for="firstname">First name: </LABEL>
          <INPUT type="text" id="firstname" name="firstname"><BR>
<LABEL for="lastname">Last name: </LABEL>
          <INPUT type="text" id="lastname" name="lastname"><BR>
<LABEL for="email">email: </LABEL>
          <INPUT type="text" id="email" name="email"><BR>
<INPUT type="radio" name="sex" value="Male"> Male<BR>
<INPUT type="radio" name="sex" value="Female"> Female<BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>