<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="errorpage.jsp" %>
<%
if(request.getParameter("Sno")!=null&&request.getParameter("pwd")!=null){
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TRSS"; 
String user="sa"; 
String password="123"; 
Connection conn= DriverManager.getConnection(url,user,password); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
String sql="select Sno,pwd from Ani where Sno='"+request.getParameter("Sno")+"'and pwd='"+request.getParameter("pwd")+"'"; 
ResultSet rs=stmt.executeQuery(sql);
session.setAttribute("Sno",Sno);
if(rs.next()){
response.sendRedirect("user.jsp");
}else
 response.sendRedirect("error.jsp");
}
%><html>
<head>
<title>登陆页面</title>
<style type="text/css">
<!--
#Layer1 {
 position:absolute;
 width:171px;
 height:32px;
 z-index:1;
 left: 599px;
 top: 283px;
}
#Layer2 {
 position:absolute;
 width:196px;
 height:18px;
 z-index:1;
 left: 608px;
 top: 281px;
}
#Layer3 {
 position:absolute;
 width:196px;
 height:150px;
 z-index:2;
 left: 777px;
 top: 237px;
}
-->
</style>
</head><body>
<div align="center">
  <p><img src="images/denglu.jpg" width="714" height="480" /></p>
  <p> </p>
  <div id="Layer3">
   <form method="post" >
  <table width="193" height="96" align="center">     
   <tr>
        <td height="56" ><input name="Sno" type="text" /></td>
   </tr>
   
      <tr>
        <td height="30"><input name="pwd" type="password" /></td>
      </tr>
      </table>
        <input name="loginButton" type="submit" value="登 录"/>
        <input name="reset" type="reset" value="重置"/>
   </form>
  </div>
</div>
</body>
</html>为什么我一加个 session.setAttribute("Sno",Sno);
他就提示出错呢???HTTP状态500 - 起 因 
org.apache.jasper.JasperException: 无法编译JSPAn error occurred at line: 2 in the jsp file: /login.jsp
Generated servlet error:
Sno cannot be resolved
 org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
 org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
 org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
注 意 完整的起因在Apache Tomcat/5.5.20里。 

解决方案 »

  1.   

    <td height="56" ><input name="Sno" type="text" /></td>下面不是有么?
      

  2.   

    你要用request获取的String Sno=request.getParameter("Sno");
      

  3.   

    session.setAttribute("Sno",Sno);
    这句话,因为你的Sno字符串根本没有实例化.
    在前面加一句
    String Sno=request.getParameter("Sno").toString();
      

  4.   

    org.apache.jasper.JasperException: 无法编译JSPAn error occurred at line: 2 in the jsp file: /login.jsp
    Generated servlet error:
    sql cannot be resolvedAn error occurred at line: 2 in the jsp file: /login.jsp
    Generated servlet error:
    Type mismatch: cannot convert from Object to String
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    还是有问题啊
      

  5.   

    <%
    if(request.getParameter("Sno")!=null&&request.getParameter("pwd")!=null){
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TRSS"; 
    String user="sa"; 
    String password="123"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    ResultSet rs=stmt.executeQuery(sql);
    String sql="select Sno,pwd from Ani where Sno='"+request.getParameter("Sno")+"'and pwd='"+request.getParameter("pwd")+"'"; 
    if(rs.next()){
    String Sno=request.getParameter("Sno").toString();
    session.setAttribute("Sno",Sno);
    response.sendRedirect("user.jsp");
    }else
     response.sendRedirect("error.jsp");
    }
    %>
    org.apache.jasper.JasperException: 无法编译JSPAn error occurred at line: 2 in the jsp file: /login.jsp
    Generated servlet error:
    sql cannot be resolved
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)