程序代码如下:<%@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>
<%@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>
解决方案 »
- 订单号生成规则
- "Date now = new Date();"中的“now”是什么语法含义。
- 关于测试,急啊,再写不出来领导就要骂了
- 如何在java程序中执行dos命令
- 个很简单的对话框之间的关联问题
- 帮帮忙。谁最能贴进的给我讲解给谁分。谢谢。
- 求一个 java语言的 “半双工”“同步”通讯 程序框架
- java中,如何响应键盘ALT+F4事件? 帮帮忙!!!!!!!!
- hashmap好像不支持对重复key的输入,但理论上hash表对重复key是支持的,如何解决hashmp对重复key不支持的问题了?
- 求解一个简单的问题,如何将555.346664 格式化成555.35????????
- 问老紫竹:有没有办法将jvm中加载并执行的class序列化到本地
- JDBC连接数据库的问题
String uname=request.getParameter("uname");
String upassword=request.getParameter("upassword"); //编写SQL语句
String sql="select pno from user where uname='"+uname+"'and upassword='"+password+"'";
交换这两句后,仍然有错,错误提示是
password cannot be resolved;
pno cannot be resolved,这又是什么原因呢?
<%@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>
可是我发现你执行查询之后:
(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类型,自己换换看