使用servlet,如何将单选按钮值和复选框值插入数据库?

时间:2014-04-09 11:06:05

标签: html ms-access servlets

我不知道如何使用servlet将性别(单选按钮),喜爱的主题(复选框)插入数据库。这是我的编码...

表格:

        <form name="myform" action="NewServlet" method="GET">
            Name: <input type="text" name="name" value="" />
            Age: <input type="text" name="age" value="" />
            Gender: <input type="radio" name="Gender" value="" />Male
                   <input type="radio" name="Gender" value="" />Female
            Your favorite: <input type="checkbox" name="fav" value="" />C
                    <input type="checkbox" name="fav" value="" />C++
                    <input type="checkbox" name="fav" value="" />JAVA
            <input type="submit" value="submit"/>
        </form>

NewServlet:

        public class NewServlet extends HttpServlet
            {
                public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
                {
                    res.setContentType("text/html");
                    PrintWriter out=res.getWriter();
                    Connection conn;
                    Statement stmt;
                    String name=req.getParameter("name");
                    int age=Integer.parseInt(req.getParameter("age"));
                    try
                    {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                        conn=DriverManager.getConnection("jdbc:odbc:mydb");
                        stmt=conn.createStatement();
                        int i=stmt.executeUpdate("insert into student values(' "+name+" ',' "+age+" ') ");
                        if(i>0)
                            out.print("Inserted Successfully");
                        else
                            out.print("Fail to Insert");
                    }
                    catch(Exception e){out.print(e);}
                }}

1 个答案:

答案 0 :(得分:0)

单选按钮的工作方式是在HTML代码中设置value并为其提供相同的name。提交表单后,浏览器仅发送所选表单的value。所以你的问题是你把这些值留空了。

  Gender: <input type="radio" name="Gender" value="Male" />Male
          <input type="radio" name="Gender" value="Female" />Female

一旦你有值,你就像使用其他参数一样使用req.getParameter("Gender")

但是2个提示:(1)您的代码对SQL注入是开放的。 (2)您应该在插入中包含列列表。如果不这样做,稍后向表模式添加字段将在以后中断插入。即insert into table (col1, col2) values('val1', 'val2');

相关问题