<%@ page import="java.sql.*"%>
<%!
public static final String dbdriver="oracle.jdbc.driver.OracleDriver";
public static final String dburl="jdbc:oracle:thin:@localhost:1521/orcl";
public static final String dbuser="scott";
public static final String dbpass="tiger";
%><%
boolean flag = false ;
String id = request.getParameter("userid");
String pwd = request.getParameter("password");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
Class.forName(dbdriver);
conn = DriverManager.getConnection(dburl,dbuser,dbpass);
String sql = "select * from tuser where userid=? and password=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setString(2,pwd);
rs = pstmt.executeQuery();
if(rs.next()){
flag = true ;
}
}catch(Exception e){
}finally{
try{
conn.close();
}catch(Exception e){
}
}
%><%
if(flag){
%>
<jsp:forward page="success.jsp"/>
<%
}else{
%>
<jsp:forward page="failure.jsp"/>
<%
}
%>
数据库里添加了表,用该查询语句也能行,但是怎么总是跳到错误的页面?输入正确的口令也是!判断有错??
<%!
public static final String dbdriver="oracle.jdbc.driver.OracleDriver";
public static final String dburl="jdbc:oracle:thin:@localhost:1521/orcl";
public static final String dbuser="scott";
public static final String dbpass="tiger";
%><%
boolean flag = false ;
String id = request.getParameter("userid");
String pwd = request.getParameter("password");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
Class.forName(dbdriver);
conn = DriverManager.getConnection(dburl,dbuser,dbpass);
String sql = "select * from tuser where userid=? and password=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setString(2,pwd);
rs = pstmt.executeQuery();
if(rs.next()){
flag = true ;
}
}catch(Exception e){
}finally{
try{
conn.close();
}catch(Exception e){
}
}
%><%
if(flag){
%>
<jsp:forward page="success.jsp"/>
<%
}else{
%>
<jsp:forward page="failure.jsp"/>
<%
}
%>
数据库里添加了表,用该查询语句也能行,但是怎么总是跳到错误的页面?输入正确的口令也是!判断有错??
pstmt.setString(2,pwd); 应该改成
pstmt.setString(1,"id");
pstmt.setString(2,"pwd");
吧
if(flag == true){
%>
<jsp:forward page="success.jsp"/>
<%
}else{
%>
<jsp:forward page="failure.jsp"/>
<%
}
%>another question:
did you mind here "request" is of type "HttpServletRequest". if so, you need to import packages "javax.servlet.*" and
"javax.servlet.http.*"
估计是取出来的rs中没有数据,可以再flag=true的位置使用调试语句,看程序是否进入了if(rs.next()).
3楼好好看看java.sql.ResultSet中的next()方法吧,不要误导人,要是那样的话你怎么登陆上来的?我想你自己的账号在数据库中是唯一的吧。“将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。”这是API中对next()方法的解释.数据库中可能没数据,也可能数据库中的值和实际页面输入的值不一致,比如某个值后面或者前面有空格,建议楼主好好检查下。