日期:2014-05-17  浏览次数:20806 次

关于一个request.getParameter()传值的问题
各位大侠 我这个问题很简单,虽然我描述的可能多了些 ……但小弟恳求你们的帮助

我的access数据库中有一些是这样的
序号 姓名 密码
200900 管理员 111
我现在想改管理员密码。
通过response.sendRedirect("success.jsp?passw="+a)传值给success.jsp。在success.jsp中,用String c=request.getParameter("passw")来接收。
我在success.jsp中用以下语句 来修改密码 
sql = "UPDATE jl SET 密码 = c WHERE 序号='200900'";
  i=stmt.executeUpdate(sql);
可最后输出新的密码的时候,为什么输出的新密码为c;而不是在表单里输入的密码呢 请高手指点 难道是我sql语句写错了吗谢谢

{说明:String a=request.getParameter("ps1")};ps1为输入新密码的表单名称。

------解决方案--------------------
常规错误,应该是:
sql = "UPDATE jl SET 密码 = '"+c+"' WHERE 序号='200900'";

当然,这样会有SQL注入漏洞,正确写法要用PreparedStatement:
sql = "UPDATE jl SET 密码 = ? WHERE 序号='200900'";
然后set参数进去。