servlet为什么接收到form表单单选按钮的值为空

解决方案 »

  1.   

    html页面如下:<html>
      <head>
        <title>用户信息表单提交</title>
        <script type="text/javascript">
          function chk(){
            var sex;
            var sexV=userInfoFrm.userSex;
            if(sexV[0].checked==false && sexV[1].checked==false){
              alert("请选择性别!");
              return false;
            }else if(sex[0].checked==true){
              sex="男";
            }else{
              sex="女";
            }
            //document.userInfoFrm.action="userinfoservlet";
          }
        </script>
        <style type="text/css">
          body{
    color:#000000;
    font-size:14px;
    }
    input{
    border:#9933CC 1px solid;
    background-color:#FFFF00;
    color:blue;
                    font-size:12px;
    }
        </style>
      </head>
      <body bgcolor="ffddcc">
        <center>
          <p align="center"><font size="6">用户注册表</font></p>
          <form  action="userinfoservlet" name="userInfoFrm" method="POST" onsubmit="return chk()" >
          <table width="455">
        <tr>
          <td width="96">用户ID:</td>
          <td width="347"><label>
            <input name="userID" type="text" id="txtUserID" size="25" maxlength="20" />
          </label></td>
        </tr>
        <tr>
          <td>密码:</td>
          <td><label>
            <input name="txtPwd" type="password" id="txtpwd" size="25" maxlength="20" />
          </label></td>
        </tr>
        <tr>
          <td>姓名:</td>
          <td><input name="txtName" type="text" id="txtName" size="25" maxlength="20" /></td>
        </tr>
        <tr>
          <td>性别:</td>
          <td><p>
            <label>
              <input type="radio" name="userSex" value="男" />
              男</label>
            <label>
              <input type="radio" name="userSex" value="女" />
              女</label>
            <br />
          </p></td>
        </tr>
        <tr>
          <td>年龄:</td>
          <td><input name="txtAge" type="text" id="txtAge" size="15" maxlength="3" />
            岁</td>
        </tr>
        <tr>
          <td colspan="2" align="center" valign="middle"><label>
            <input type="submit" name="Submit" value="  提交  " /> &nbsp;&nbsp;
            <input name="reset" type="reset" id="reset" value="  重置  " />
          </label></td>
        </tr>
      </table>
          </form>
        </center>
      </body>
    </html>servlet的代码如下:
    package showuserinfo;import javax.servlet.*;
    import javax.servlet.jsp.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;public class UserInfoServlet extends HttpServlet {
        public UserInfoServlet() {    }    private static final String CONTENT_TYPE = "text/html; charset=GBK";    //Initialize global variables
        public void init() throws ServletException {
        }    //Process the HTTP Get request
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {
            //设置响应客户端请求的内容类型
            response.setContentType(CONTENT_TYPE);
            //获取字符输法对象
            PrintWriter out= response.getWriter();
            //获取客户端请求的各个参数
            String userID = request.getParameter("userID");
            if (userID == null) {
                userID = "";
            }
            String userPwd = request.getParameter("txtPwd");
            if (userPwd == null) {
                userPwd = "";
            }
            String userName = request.getParameter("txtName");
            if (userName == null) {
                userName = "";
            }
            //******取到的值为空?
            String userSex = request.getParameter("userSex");
            System.out.println(userSex);
            
            String userAge = request.getParameter("txtAge");
            if (userAge == null) {
                userAge = "";
            }
            //向客户端输出用户信息
            out.println("<html>");
            out.println("<head><title>UserInfoServlet</title></head>");
            out.println("<body bgcolor=\"#ffddcc\"><center>");
            out.println("<p align=center><font size=6 color=red>用户详细信息</font><br><br>");
            out.println("<table border=0>");
            out.println("<tr><td>用户ID:</td><td>" + userID+"</td></tr>");
            out.println("<tr><td>密码:</td><td>" + userPwd+"</td></tr>");
            out.println("<tr><td>姓名:</td><td>" +userName +"</td></tr>");
            out.println("<tr><td>性别:</td><td>" + userSex+"</td></tr>");
            out.println("<tr><td>年龄:</td><td>" +userAge +"</td></tr>");
            out.println("</table></center></body>");
            out.println("</html>");
            out.close();
        }    //Process the HTTP Post request
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {
            doGet(request, response);
        }    //Clean up resources
        public void destroy() {
        }}
      

  2.   

    <input type="radio" name="userSex" value="男" onclick="alert(value)"/>
              男</label>
            <label>
              <input type="radio" name="userSex" value="女" onclick="alert(value)"/>
              女</label>
    我试了, 这样也能显示啊。
    Servlet里面这样能得到啊。 
    有点晕、
      

  3.   

    我帮你测试了下,没有问题servlet打印出页面单选按钮的值无误
      

  4.   

    谢谢,我把工程重新make就Ok了!