程序代码如下:<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<html><body bgcolor=pink><font>
<head>
      <title>登陆</title>
</head>
<center>
<h1>实验室设备管理系统</h1>
<br>
<br>
 <%boolean flag=false;%>
 

 <%// 定义数据库操作的常量、对象
// 数据库驱动程序
final String DBDRIVER   = "com.mysql.jdbc.Driver" ;
// 数据库连接地址
final String DBURL = "jdbc:mysql://localhost/device" ;
// 数据库用户名
final String DBUSER = "root" ;
// 数据库连接密码
final String DBPASSWORD = "123456" ;
// 声明一个数据库连接对象
Connection conn = null ;
// 声明一个数据库操作对象
Statement  stmt     = null ;
// 声明一个结果集对象
ResultSet rs = null ;
// 声明一个SQL变量,用于保存SQL语句
String sql              = null ;
%>
<%    // 进行数据库操作
try
{       
            
// 加载驱动程序
Class.forName(DBDRIVER) ; 
// 连接数据库
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
// 实例化数据库操作对象
            stmt = conn.createStatement() ;
//编写SQL语句
String sql="select pno from user where uname='"+uname+"'and upassword='"+password+"'"; // 接收表单内容
String uname=request.getParameter("uname");
            String upassword=request.getParameter("upassword");

// 查询记录
rs = stmt.executeQuery(sql) ;

 %><%
// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
}
// 依次关闭
rs.close() ;
stmt.close() ;
conn.close() ;
}
catch(Exception e)
{}
%>
 <%       // 判断用户名及密码
if(flag)
{
 if (pno==2){
 //pno用来判定是否为管理员
 // 管理员%>
          
<jsp:forward page="l_success1.jsp"/>
               <%   }
                }
else
{
  // 普通用户%> <jsp:forward page="l_success2.jsp"/>


<%}
%>
</center>
</font>
</body>
</html>

解决方案 »

  1.   

    什么问题? 你连接mysql时,mysql没有端口号?final String DBURL = "jdbc:mysql://localhost/device" ; 另外这两句倒换一下位置// 接收表单内容
    String uname=request.getParameter("uname");
                String upassword=request.getParameter("upassword"); //编写SQL语句
    String sql="select pno from user where uname='"+uname+"'and upassword='"+password+"'";
      

  2.   

    由于使用的本地数据库,所以没用端口号.
    交换这两句后,仍然有错,错误提示是
    password cannot be resolved;
    pno cannot be resolved,这又是什么原因呢?
      

  3.   

    经过修改,可能出错的部分我用红色标出,请高手帮忙看下是否正确,代码如下:
    <%@page contentType="text/html;charset=gb2312"%>
    <%@page import="java.sql.*"%>
    <html><body bgcolor=pink><font>
    <head>
          <title>登陆</title>
    </head>
    <center>
    <h1>实验室设备管理系统</h1>
    <br>
    <br>
     <%boolean flag=false;%>
     

     <%// 定义数据库操作的常量、对象
    // 数据库驱动程序
    final String DBDRIVER   = "com.mysql.jdbc.Driver" ;
    // 数据库连接地址
    final String DBURL = "jdbc:mysql://localhost/device" ;
    // 数据库用户名
    final String DBUSER = "root" ;
    // 数据库连接密码
    final String DBPASSWORD = "123456" ;
    // 声明一个数据库连接对象
    Connection conn = null ;
    // 声明一个数据库操作对象
    Statement  stmt     = null ;
    // 声明一个结果集对象
    ResultSet rs = null ;
    // 声明一个SQL变量,用于保存SQL语句

    %>
    <%    // 进行数据库操作
    try
    {       
                
    // 加载驱动程序
    Class.forName(DBDRIVER) ; 
    // 连接数据库
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
    // 实例化数据库操作对象
                stmt = conn.createStatement() ;
    //编写SQL语句 // 接收表单内容
    String uname=request.getParameter("uname");
                String upassword=request.getParameter("upassword");
    String sql="select pno from user where uname='"+uname+"'and upassword='"+upassword+"'";

    // 查询记录
    rs = stmt.executeQuery(sql) ;

     %><%
    // 判断是否有记录
    if(rs.next())
    {
    // 如果有记录,则执行此段代码
    // 用户是合法的,可以登陆
    flag = true ;
    }
    // 依次关闭
    rs.close() ;
    stmt.close() ;
    conn.close() ;
    }
    catch(Exception e)
    {}
    %>
     <%       // 判断用户名及密码
    if(flag)
    {
     if (pno==2){
     //pno用来判定是否为管理员,2为管理员,1为普通用户
     // 管理员%>
              

    <jsp:forward page="l_success1.jsp"/>
                   <%   }
                    }
    else
    {
      // 普通用户%> <jsp:forward page="l_success2.jsp"/>


    <%}
    %>
    </center>
    </font>
    </body>
    </html>
      

  4.   

    密码变量写错啦,改为:String sql="select pno from user where uname='"+uname+"'and upassword='"+upassword+"'";还有就是确认一下你的表里有pno这个字段不
      

  5.   

    呵呵,那个upassword我找到了,不过还是非常感谢
      

  6.   

    LZ不是要把pno查询出来判断吗?
    可是我发现你执行查询之后:
    (1)没有定义变量pno(难怪会 pno cannot be resolved)
    (2)没有把pno字段的值从结果集里给取出来存放到变量pno里
    那么你后面怎么能有这样的代码  if (pno==2)来判断呢?这样改改看:
    <%
    // 判断是否有记录
    int pno;
    if(rs.next())
    {
    // 如果有记录,则执行此段代码
    // 用户是合法的,可以登陆
    flag = true ;
    pno=rs.getInt("pno");
    } 不过不知道你的pno字段是什么类型,如果不是int类型,自己换换看