我不知道如何使用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);}
}}
答案 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');