【转】jsp报错:name cannot be resolved to a variable

  • Post author:
  • Post category:其他


<html> <head>
<title>登录验证界面</title> </head>
 <body><%
try{  
Connection conn =null;  
PreparedStatement pstmt =null;
 ResultSet rs=null;
 String driverName ="com.sql.jdbc.Driver";
 String dbName="user";
 String url1="jdbc:sql://localhost/"+dbName;  
String url2="?user=sa&password=lx13784429739";
 String url3="&Unicode=true&characterEncoding=GB2312";  
String url=url1+url2+url3;  Class.forName(driverName);  conn=DriverManager.getConnection(url);
 request.setCharacterEncoding("GB2312");
 String name=request.getParameter("username");
 String pw=request.getParameter("pass");
 String sql="select * from user_b where(uname=?andupassword=?) ";
   pstmt =conn.prepareStatement(sql);
 pstmt.setString(1,name);  
pstmt.setString(2,pw);
 rs=pstmt.executeQuery();  
if(rs.next()){  %><%=name%>:登陆成功!<br><%     }
 else{%>  <%=name %>:登录失败!<br><%}  
}catch(Exception e)
     {%>  
              出现异常错误!<br><%=e.getMessage()%>  
<%}
      finally{    if(rs!=null){rs.close();}  
  if(pstmt!=null){pstmt.close();}    
   if(conn!=null){conn.close();}
 }%>
  </body>
</html>

问题解决:

rs pstmt conn都定义到try代码外面,不然它们的范围就只在try{}花括号里面有效。