出错信息:
org.apache.jasper.JasperException: An exception occurred processing JSP page /loginCheck.jsp at line 2724: }
25: ResultSet rs = stmt.executeQuery(sql);
26: int rowcount = 0;
27: while(rs.next())
28: {
29: rowcount++;
30: if(role.equals("student"))
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
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:802)数据库处理bean:
package dbc;import java.sql.*;
import java.io.*;
import java.util.*;public class DataBaseConnection {
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/search";
String DBUSER = "root";
String DBPWD = "7681239";
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
private PreparedStatement pstmt = null;
public void connection()
{
try
{
Class.forName(DBDRIVER);
}
catch(java.lang.ClassNotFoundException e)
{
System.out.println("conn:"+e.getMessage());
System.out.println(DBURL);
}
}
public ResultSet executeQuery(String sql)
{
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("conn_executeQuery:"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int rscount = 0;
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rscount = stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.err.println("conn_executeUpdate:"+ex.getMessage());
}
return rscount;
}
public PreparedStatement PSexecuteUpdate(String sql)
{
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
pstmt = conn.prepareStatement(sql);
}
catch(SQLException ex)
{
System.err.println("conn_PSexecuteUpdate:"+ex.getMessage());
}
return pstmt;
}
public void close()
{
try
{
conn.close();
}
catch(Exception e)
{
}
}
}
数据提交处理页
<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="stmt" class="dbc.DataBaseConnection" scope="session"/>
<%
String role=request.getParameter("role");
String uname=request.getParameter("uname");
String password=request.getParameter("password");
String sql = "";
String id="",
name="",
dpassword="";
if(role.equals("student"))
{
sql = "select * from student where sname='"+uname+"'";
}
else if(role.equals("admin"))
{
sql = "select * from admin where adminname='"+uname+"'";
} else
{
sql = "select * from company where cname='"+uname+"'";
}
ResultSet rs = stmt.executeQuery(sql);
int rowcount = 0;
while(rs.next())
{
rowcount++;
if(role.equals("student"))
{
id = rs.getString("id");
name = rs.getString("sname");
dpassword = rs.getString("password");
}
else if(role.equals("admin"))
{
id = rs.getString("adminid");
name = rs.getString("adminname");
dpassword = rs.getString("password");
}
else
{
id = rs.getString("cid");
name = rs.getString("cname");
dpassword = rs.getString("password");
}
}
if((rowcount==1)&&(dpassword.equals(password)))
{
if(role.equals("student"))
{
session.setAttribute("id",id);
session.setAttribute("name",name);
session.setAttribute("password",password);
session.setAttribute("role","student");
response.sendRedirect("index.jsp");
}
else if(role.equals("admin"))
{
session.setAttribute("id",id);
session.setAttribute("name",name);
session.setAttribute("password",password);
session.setAttribute("role","admin");
response.sendRedirect("index.jsp");
}
else
{
session.setAttribute("id",id);
session.setAttribute("name",name);
session.setAttribute("password",password);
session.setAttribute("role","company");
response.sendRedirect("index.jsp");
}
}
else
{
out.println("登陆失败!错误的用户名或密码,请重新<a href=\"index.jsp\">登陆</a>");
}
%>
org.apache.jasper.JasperException: An exception occurred processing JSP page /loginCheck.jsp at line 2724: }
25: ResultSet rs = stmt.executeQuery(sql);
26: int rowcount = 0;
27: while(rs.next())
28: {
29: rowcount++;
30: if(role.equals("student"))
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
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:802)数据库处理bean:
package dbc;import java.sql.*;
import java.io.*;
import java.util.*;public class DataBaseConnection {
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/search";
String DBUSER = "root";
String DBPWD = "7681239";
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
private PreparedStatement pstmt = null;
public void connection()
{
try
{
Class.forName(DBDRIVER);
}
catch(java.lang.ClassNotFoundException e)
{
System.out.println("conn:"+e.getMessage());
System.out.println(DBURL);
}
}
public ResultSet executeQuery(String sql)
{
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("conn_executeQuery:"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int rscount = 0;
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rscount = stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.err.println("conn_executeUpdate:"+ex.getMessage());
}
return rscount;
}
public PreparedStatement PSexecuteUpdate(String sql)
{
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
pstmt = conn.prepareStatement(sql);
}
catch(SQLException ex)
{
System.err.println("conn_PSexecuteUpdate:"+ex.getMessage());
}
return pstmt;
}
public void close()
{
try
{
conn.close();
}
catch(Exception e)
{
}
}
}
数据提交处理页
<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="stmt" class="dbc.DataBaseConnection" scope="session"/>
<%
String role=request.getParameter("role");
String uname=request.getParameter("uname");
String password=request.getParameter("password");
String sql = "";
String id="",
name="",
dpassword="";
if(role.equals("student"))
{
sql = "select * from student where sname='"+uname+"'";
}
else if(role.equals("admin"))
{
sql = "select * from admin where adminname='"+uname+"'";
} else
{
sql = "select * from company where cname='"+uname+"'";
}
ResultSet rs = stmt.executeQuery(sql);
int rowcount = 0;
while(rs.next())
{
rowcount++;
if(role.equals("student"))
{
id = rs.getString("id");
name = rs.getString("sname");
dpassword = rs.getString("password");
}
else if(role.equals("admin"))
{
id = rs.getString("adminid");
name = rs.getString("adminname");
dpassword = rs.getString("password");
}
else
{
id = rs.getString("cid");
name = rs.getString("cname");
dpassword = rs.getString("password");
}
}
if((rowcount==1)&&(dpassword.equals(password)))
{
if(role.equals("student"))
{
session.setAttribute("id",id);
session.setAttribute("name",name);
session.setAttribute("password",password);
session.setAttribute("role","student");
response.sendRedirect("index.jsp");
}
else if(role.equals("admin"))
{
session.setAttribute("id",id);
session.setAttribute("name",name);
session.setAttribute("password",password);
session.setAttribute("role","admin");
response.sendRedirect("index.jsp");
}
else
{
session.setAttribute("id",id);
session.setAttribute("name",name);
session.setAttribute("password",password);
session.setAttribute("role","company");
response.sendRedirect("index.jsp");
}
}
else
{
out.println("登陆失败!错误的用户名或密码,请重新<a href=\"index.jsp\">登陆</a>");
}
%>
DataBaseConnection 类的connection() 有问题吧
Class.forName(DBDRIVER); 加载数据库驱动 应该放到构造函数里
把connection() 改为:
public DataBaseConnection() {
try {
Class.forName(DBDRIVER);
} catch (java.lang.ClassNotFoundException e) {
System.out.println("conn:" + e.getMessage());
System.out.println(DBURL);
}
}
session.setAttribute("id",id);
session.setAttribute("name",name);
session.setAttribute("password",password);
session.setAttribute("role","student");
response.sendRedirect("index.jsp");
以上这些代码你可以将获取的id,name等先存入实体类中,然后再存入List中,转入jsp页面用foreach循环遍历就行了。
如果照你用这么多session会占资源比较多。
提供我写的数据库连接操作类吧,不知道对你有帮助没有!
package common;
import java.sql.*;
import java.util.*;
public class DBConnection {
/**
* 连接数据库的类
* */
public static final String DRIVER_CLASS ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
public static final String DATABASE_URL="jdbc:sqlserver://localhost:1433;databaseName=addressBook";
private static final String DATABASE_Name="sa";
private static final String DATABASE_PASSWORD="sa";
protected Connection con=null;
protected PreparedStatement pr=null;
protected ResultSet rs=null;
//建立数据库的连接
public Connection getconnection(){
try {
Class.forName(DRIVER_CLASS);
Connection con=DriverManager.getConnection(DATABASE_URL,DATABASE_Name,DATABASE_PASSWORD);
return con;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//关闭资源 public void CloseAll(){
try {
if(rs!=null){
rs.close();
}
if(pr!=null){
pr.close();
}
if(con!=null){
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
提两点建议 不要再页面里面做太多操作
不要用太多session
import java.io.*;
import java.util.*; public class DataBaseConnection { String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost:3306/search";
String DBUSER = "root";
String DBPWD = "7681239";
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
private PreparedStatement pstmt = null;
public Connection connection()
{
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
}
catch(java.lang.ClassNotFoundException e)
{
System.out.println("conn:"+e.getMessage());
System.out.println(DBURL);
}
return conn;
}
public ResultSet executeQuery(String sql)
{
try
{
conn = connection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("conn_executeQuery:"+ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int rscount = 0;
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rscount = stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.err.println("conn_executeUpdate:"+ex.getMessage());
}
return rscount;
}
public PreparedStatement PSexecuteUpdate(String sql)
{
try
{
conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD);
pstmt = conn.prepareStatement(sql);
}
catch(SQLException ex)
{
System.err.println("conn_PSexecuteUpdate:"+ex.getMessage());
}
return pstmt;
}
public void close()
{
try
{
conn.close();
}
catch(Exception e)
{
}
}
}
2009-8-1 11:44:51 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: F:\jdk\jdk\bin;F:\tomcat6\Tomcat 6.0\bin
2009-8-1 11:44:51 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2009-8-1 11:44:51 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 671 ms
2009-8-1 11:44:51 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2009-8-1 11:44:51 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.10
2009-8-1 11:44:53 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2009-8-1 11:44:53 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2009-8-1 11:44:57 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2009-8-1 11:44:57 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2009-8-1 11:44:57 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/47 config=null
2009-8-1 11:44:57 org.apache.catalina.startup.Catalina start
信息: Server startup in 6000 ms
conn_executeQuery:No suitable driver
2009-8-1 11:47:30 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:532)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:595)