【发布时间】:2011-03-18 23:02:31
【问题描述】:
谁能告诉我为什么这不起作用?我希望能够检查从数据库查询返回的用户名/密码是否等于一个值。
会话属性“loginSuccess”总是返回 false,即使值应该匹配。
<%@ page language="java" import="java.sql.*" %>
<%
String driver = "oracle.jdbc.driver.OracleDriver";
Class.forName(driver).newInstance();
Connection con = null;
ResultSet rst = null;
Statement stmt = null;
try {
String url = "jdbc:oracle:thin:username/password@url:port:SID";
con = DriverManager.getConnection(url);
stmt = con.createStatement();
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (request.getParameter("action") != null) {
rst = stmt.executeQuery("select username, password"
+ " from table");
}
%>
<%
boolean loginCheck = false;
int count = 1;
while (rst.next()) {
if(request.getParameter("action")!=null){
if("username1"==rst.getString("username")){
if("password1"==rst.getString("password")){
loginCheck = true;
}
}
}
count++;
}
if(loginCheck==true){
session.setAttribute("loginSuccess", "true");
}else{
session.setAttribute("loginSuccess", "false");
}
rst.close();
stmt.close();
con.close();
%>
<jsp:forward page="login.jsp"/>
【问题讨论】: