index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <head><title></title></head>
  <body>
  <form action="login.jsp" method="post">
  name:<input type="text" name="name"><br>
  passwprd:<input type="text" name="password"><br>
  <input type=submit value="登陆">  <input type=reset value="重置">
  </form>
  </body>
</html>login.jsp:<%@ page language="java" import="java.util.*,java.io.*,java.sql.*" pageEncoding="utf-8"%>
<html>
  <head><title></title></head>
  <body>
<%
try{
    String name=request.getParameter("name");
String password=request.getParameter("password");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
String url="jdbc:sqlserver://localhost:1433;DatabaseName=test"; 
String user="sa"; 
String password1="123"; 
Connection conn= DriverManager.getConnection(url,user,password1); 
Statement stmt=conn.createStatement(); 
String sql="select * from student"; 
ResultSet rs=stmt.executeQuery(sql); 
if(rs.next())
    {
    if(rs.getString("password").equals(password)){
       out.print("登陆成功");
    }
    else{
       out.print("登陆失败");
    }
    }
    else{
        out.print("用户名不存在");
    }
    rs.close(); 
stmt.close(); 
conn.close(); 
}
catch(Exception e){e.printStackTrace();}
%> 
  </body>
</html>
补充:不管输入什么,都显示的是:“登录失败”

解决方案 »

  1.   

    有什么异常?username和password值都正确传给数据库了吗?
      

  2.   

    你看你的sql语句String sql="select * from student"; 你查询的是所有的记录,但是你又不遍历if(rs.next()) 所以你永远都是和数据库第一条记录做比较
      

  3.   

    sql怎么能那写呢。
    select * from student where username=? and stupassword=?
      

  4.   

    if 换成while
    为什么仅仅比较password呢
    难道不是name && password都要匹配才可以么