代码不多 所以我就全部贴出来了,望大家能看出我的错误,指点指点小弟。调试下也可以
这是HTML的小段儿代码  login.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor="pink">
<center>
<h4 align="center">用户登录界面</h4>
<hr>
<form action="loginCL.jsp" method="post">
<tr>
<td>&nbsp姓&nbsp;名:</td>
<td><input name="username" type="text" size="10"><br>
</td>
</tr>
<tr>
<td>&nbsp;密&nbsp;&nbsp;码:</td>
<td><input name="password" type="password" size="12"><br>
</td>
</tr>
<tr>
<td><input name="submit" type="submit" value="登录">
</td>
<td><input name="reset" type="reset" value="重置"><br>
</td>
</tr>
</center>
</form>
</body>
</html>  这是逻辑处理的代码 loginCL.jsp,主要是这段,估计错误就在此<%@ page language="java" import="java.sql.*,java.util.*;"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
[code=Java]
<%
try {
//接受用户名和密码
String name = request.getParameter("username");
String passw = request.getParameter("password");
//到数据库去验证
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.得到连接
Connection ct = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=MYDB",
"sa", "630923");
//3.创建Statement Statement st = ct.createStatement();
//4.查询数据库
ResultSet rs = st
.executeQuery("select password from ClassMates where Name='"
+ name + "'");
//根据结果判断
if (rs.next()) {
//说明用户存在
if (rs.getString(1).equals(passw)) {
//合法,就跳转到成功页面
response.sendRedirect("welcome.jsp?user="+name);
} else {
//不合法,就跳转回登录页面
response.sendRedirect("login.jsp?error=1");
}
} else {
response.sendRedirect("login.jsp?error=2");
}
} catch (Exception e) {
e.printStackTrace();
}
%></body>
</html>
[/code]成功也面也就没必要贴出来了 就是一个简单的成功页面 几个字  文件名是welcome.jsp当我提交按钮时 在URL地址栏总是http://localhost:8080/LoginSystem/login.jsp?error=2 或者就是error=1

解决方案 »

  1.   

    我找了好久错误 可还是没找出来  始终不能跳到成功页面 各位好心人 帮帮忙!  我的我的那个MYDB数据库里面的数据也很简单   :
    ID   Name   Sex   Age  Address  Emal                 password 
    1    Jeelon 男    21   贵阳市   [email protected]    jeelom
    .    .      .     .    .        .                    .
    .    .      .     .    .        .                    .
    .    .      .     .    .
      

  2.   

    用System.out.println();输出从页面传来的参数和从数据库返回的数据不就看出来了。
      

  3.   


    打印结果是:
    jeelon
    jeelon   两个相等  但还是跳不到成功页面去
      

  4.   


    打印结果:
    jeelon
    jeelon
    我在加了一个语句 判断输入的和从数据库查询的是否相等
    System.out.println(rs.getString(1).equals(passw));结果输出了false
      

  5.   

    逻辑上没什么问题,把 
    if (rs.getString(1).equals(passw)) {
    改成
     if (rs.getString(1).trim().equals(passw.trim())) {
    试试不行你就直接在if (rs.next()) {
      System.out.println("#"+rs.getString(1)+"#"+passw+"#");//看看答应结果
                    //说明用户存在
                    if (rs.getString(1).equals(passw)) {
                        //合法,就跳转到成功页面
                        response.sendRedirect("welcome.jsp?user="+name);
                    } else {
      

  6.   


    System.out.println(rs.getString(1));
    System.out.println(rs.getString("password"));
    如代码,你直接试试rs.getString(1)和rs.getString("password")这两个值打印的结果是否一样?
    建议:在获取结果集里面的值的时候不要采用getString(int)这个类型,而是采用rs.getString(columnName)
      

  7.   

    你应该对比密码jeesom 而不是名字jeeson
    做数据库关联操作时 最好加上.trim() 略去其中的空格 
    数据库的读取出来时最容易后边带空格了纠正下5楼 在结果集的getString(int)方法中 索引是几 取得就是第几列的值 楼主没错
      

  8.   

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();