这是我的servlet代码......
try {
HttpSession session=request.getSession(true);
String FN= (String)session.getAttribute("FN");
String h1= request.getParameter("h1"); //contains the password value
if(h1=="" || h1== null)
{
response.sendRedirect("PERROR.html"); // if no value in passwrd field
}
else{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:dsn2");
Statement st=con.createStatement();
String UNM= (String)session.getAttribute("uname");
String query= "select * from img_pwd where uname='"+UNM+"' and pwd='"+h1+"')";
// validating from the table img_pwd
ResultSet r= st.executeQuery(query);
if(r.next())
{
con.close();
response.sendRedirect("ACCOUNT.jsp"); //success, go to dashboard
}
else
{
response.sendRedirect("PERROR.html"); // if the password-mismatches
}
}
} finally {
out.close();
}
表格“img_pwd”如下所示 -
1. uname(nvarchar[50])
2. pwd(nvarchar[20])
所以我尝试了调试,发现程序执行到达查询存储在字符串中的位置,但查询没有执行,程序的进度在存储QUERY STRING之后就停止了....
我无法找出错误,需要帮助..
答案 0 :(得分:1)
"select * from img_pwd where uname='"+UNM+"' and pwd='"+h1+"')"
你可以找出“)” .. ??? 是的,那是错误的。删除后,代码工作正常。
答案 1 :(得分:0)
您可以尝试以下操作:
select * from table
的内容,您确定应该有一些结果,以确保您对数据库的访问按预期工作。"%"
答案 2 :(得分:0)
在连接数据库时可能有任何异常,你没有提到catch块,所以放一个catch并调试。
答案 3 :(得分:0)
是从
删除“)”“select * from img_pwd where uname ='”+ UNM +“'and pwd ='”+ h1 +“')”
您的查询字符串应如下所示:
从表格中选择*