<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*" errorPage="../error.jsp"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>验证用户身份</title>
</head>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
String type=(String)request.getParameter("type");//type为用户类别,bit型,1表示学生,0表示管理员[/color]Connection con=null;
Statement sm=null;
ResultSet rs=null;
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;DatabaseName=DormitoryManager";
con=DriverManager.getConnection(url,"sa","sa");
sm=con.createStatement();
rs=sm.executeQuery("select * from 登录 where 用户名='"+username+"'");
if(rs.next())//判断此用户是否存在
{
if(rs.getString("用户名").equals(password)&& rs.getString("类别").equals(true))//判断密码是否正确
{
response.sendRedirect("student_login.jsp");//跳转到此页
session.setAttribute("user",username);//把用户名保存在session中
}
else if(rs.getString("用户名").equals(password)&& rs.getString("类别").equals(false))
response.sendRedirect("manager_login.jsp");//密码不正确,则重新返回登录页面
else
{
%>
<script language="javascript">
alert("密码或者验证码错误,请重新输入!");
window.location.href="login.jsp"
</script>
<%}
}
else
{
%>
<script language="javascript">
alert("非法用户,无权登录!");
window.location.href="login.jsp"
</script>
<%}
}
catch(Exception e)
{
e.printStackTrace();
}
finally//最后必须执行的代码
{
if(rs!=null)//关闭ResultRet
{
try{rs.close();}catch(Exception e){e.printStackTrace();}
}
if(sm!=null)//关闭StateMent
{
try{sm.close();}catch(Exception e){e.printStackTrace();}
}
if(con!=null)//关闭Connection
{
try{con.close();}catch(Exception e){e.printStackTrace();}
}
}
%>
</html>
运行时只要用户名和密码正确,不管类别是啥,都“提示密码或者验证码错误,请重新输入”,语法无错
请高手帮忙解答一下,看看哪里错了,帮忙改一下。谢谢
------解决方案--------------------
很无语 ,自己好好找找把 ,应该不难!别想着 把自己DBUG 的时间都省了
------解决方案--------------------
逻辑错误!慢慢看!
------解决方案--------------------
if(rs.getString("用户名").equals(password)&& rs.getString("类别").equals(true))
这句错了,用户名能等于password么?
楼主结贴吧。