运行上面代码还是错误type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 52 in the jsp file: /login_conf.jsp Duplicate local variable sql 49: // 实例化数据库操作对象 50: 51: // 编写SQL语句 52: String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'" ; 53: 54: System.out.println(sql) ; 55: // 查询记录 Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415) org.apache.jasper.compiler.Compiler.compile(Compiler.java:308) org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) org.apache.jasper.compiler.Compiler.compile(Compiler.java:273) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'" ;???????
RE dengfeiling() 这句代码哪错了啊
你重复定义了sql字符串变量,将 String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'" ; 这一句的String去掉即可... 结帖给分吧...^_^
re: dengfeiling() 还有错啊: 我用对的用户密码怎么也登陆不了啊
晕哦,多了一个String sql=null嘛String sql = null ; String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'" ;//把String去了
<%-- 导入java.sql包,表示要使用数据库操作 --%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>登陆</title>
</head>
<body>
<center>
<h1>登陆范例——用户名及密码固定</h1>
<hr>
<br>
<br>
<%
// 接收请求的内容
String name = request.getParameter("uname") ;
String password = request.getParameter("upassword") ; // 定义变量,如果用户是合法用户,则将此标记变为true
boolean flag = false ;
%>
<%
// 定义数据库操作的常量、对象
// 数据库驱动程序
final String DBDRIVER = "com.mysql.jdbc.Driver" ;
// 数据库连接地址
final String DBURL = "jdbc:mysql://localhost:3306/test" ;
// 数据库用户名
final String DBUSER = "root" ;
// 数据库连接密码
final String DBPASSWORD = "1234" ;
// 声明一个数据库连接对象
Connection conn = null ;
// 声明一个数据库操作对象
Statement stmt = null ;
// 声明一个结果集对象
ResultSet rs = null ;
// 声明一个SQL变量,用于保存SQL语句
String sql = null ;
%>
<%
// 进行数据库操作
try
{
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver") ;
// 连接数据库
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
// 实例化数据库操作对象
// 编写SQL语句
String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'" ;
System.out.println(sql) ;
// 查询记录
stmt = conn.createStatement() ;
rs = stmt.executeQuery(sql) ;
// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
}
// 依次关闭
rs.close() ;
stmt.close() ;
conn.close() ;
}
catch(Exception e)
{}
%>
<%
// 判断用户名及密码
if(flag)
{
// 合法用户
%>
<jsp:forward page="login_success.jsp"/>
<%
}
else
{
// 非法用户
%>
<jsp:forward page="login_failure.jsp"/>
<%
}
%>
</center>
</body>
</html>这是代码,谢谢了
Duplicate local variable sql
49: // 实例化数据库操作对象
50:
51: // 编写SQL语句
52: String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'" ;
53:
54: System.out.println(sql) ;
55: // 查询记录
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'" ;
这一句的String去掉即可...
结帖给分吧...^_^
还有错啊:
我用对的用户密码怎么也登陆不了啊
String password = request.getParameter("upassword") ;
加个trim()或者QueryString()试试看;
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
}
你这句 有没有返回你查询的结果出来啊~~ 麻烦检查哈。
真不好意思,加什么地方啊?
好象有点,用RETURN(FLAG);吗?
不用返回值...
String password = request.getParameter("upassword").trim() ;以上的语句可运行的前提是前一页面中的uname和upassword都输入的数据,不能为空。建议改成以下内容:String name = request.getParameter("uname").trim()==null ? "" : request.getParameter("uname").trim();
String password = request.getParameter("upassword").trim()==null ? "" : request.getParameter("uname").trim();
建议改成以下内容:String name = request.getParameter("uname")==null ? "" : request.getParameter("uname").trim();
String password = request.getParameter("upassword")==null ? "" : request.getParameter("uname").trim();
<% request.setCharacterEncoding("gb2312");%>
<%@ page import="com.bwn.db.Condb"%>
<%@ page import="java.util.Date"%>
<%
Date date=new Date();
Condb con=new Condb();
String username=request.getParameter("username");
String Rname=request.getParameter("Rname");
String password=request.getParameter("password");
String email=request.getParameter("email");
String address=request.getParameter("address");
String photo=request.getParameter("photo");
String pass=request.getParameter("pass");
String question=request.getParameter("question");
//查询数据表中用户是否被注册
String str="select Username from tb_User where Username='"+username+"'";
ResultSet rs=con.executeQuery(str);
if(rs.next()){
%>
<script language="javascript">
alert("此用户已经被占用请重新注册");
history.back();
</script>
<%
}else{
String sql="insert into tb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime)values('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+pass+"','"+question+"','"+date.toLocaleString()+"')";
int temp=con.executeUpdate(sql);
%>
<script language="javascript">
alert("注册成功");
window.location.href=("../index.jsp");
</script>
<%
}con.close();
%>
<%@ page import="com.bwn.db.Condb"%>
<%@ page import="com.bwn.cart.BuyList"%>
<%@ page import="java.util.Vector"%>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=gb2312">
<title>订单添加页</title>
</head>
<link href = "../css/online.css" rel = "stylesheet">
<body>
<%@ include file = "../top.jsp"%>
<table width="800" height="500" border="0" align="center" cellspacing="0" cellpadding="0" background="../images/bg.gif" class="tableBorder">
<form action="clear.jsp" method="post" name="form1">
<tr>
<td height="429" colspan="2" valign="top">
<table width="800" height="136" align="center" border="0" cellspacing="0" cellpadding="00">
<tr align="center" valign="middle">
<td height="37" colspan="8" nowrap class="bgcolor"><font color="#ff0000">
<%
if(session.getAttribute("username") == null)
{
out.println("您还没有登录");
}
else
{
out.println(session.getAttribute("username"));
}
%></font>
</td>
</tr>
<tr align="center" valign="middle" bgcolor="#fcbe3f">
<td height="24" colspan="8" nowrap background="..images/top1.gif" class="head">
<font size="3" face"宋体" class="head">我的购物车></font>
</td>
</tr>
<tr align="center" valign="middle" class="bgcolor">
<td width="73" height="21"> </td>
<td width="96">序号</td>
<td width="267" height="21">商品名称</td>
<td width="95" height="21">价格</td>
<td width="88" height="21">数量</td>
<td width="107" height="21">总金额</td>
</tr>
</body>
</html>
<% request.setCharacterEncoding("gb2312");%>
<%@ page import="com.bwn.db.Condb"%>
<%
Condb con = new Condb();
String username = request.getParameter("username");
String email = request.getParameter("email");
String question = request.getParameter("question");
String result = request.getParameter("result");
String sql = "select * from tb_User where Username = '"+username+"' and Email = '"+email+"' and Question = '"+question+"' and Result = '"+result+"'";
ResultSet rs = con.executeQuery(sql);
String password = "";
String pass = "你的密码是:";
if(rs.next())
{
password = rs.getString(4);
%>
<script language = "javascript">
alert("<%=pass+password%>");
window.location.href = "../index.jsp"
</script>
<%
}else{
out.println("<script language = 'javascript'>alert('你输入的信息有误');history.back();</script>");
}
%>