求大神帮助小弟下,
开始定义了DaoVote类
package dao;
import java.sql.*;
import java.util.*;
import vo.Vote;
public class VoteDao {
private Connection conn=null;
public void initConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
}
public ArrayList<Vote> getAllVotes() throws Exception{
ArrayList<Vote> al=new ArrayList<Vote>();
initConnection();
String sql="select teacherno,teachername,vote from t_vote";
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
Vote vote=new Vote();
vote.setTeacherno(rs.getString("teacherno"));
vote.setTeachername(rs.getString("teachername"));
vote.setVotenumber(rs.getInt("vote"));
al.add(vote);
}
conn.close();
return al;
}
public void updateVotes(String[] teacherno)throws Exception{
initConnection();
String sql="update t_vote set vote=vote+1 where teacherno=?";
PreparedStatement ps=conn.prepareStatement(sql);
for(int i=0;i<teacherno.length;i++){
ps.setString(1,teacherno[i]);
ps.executeUpdate();
}
conn.close();
}
}
在JSP中使用
VoteDao vdao=new VoteDao();
ArrayList<Vote> votes=vdao.getAllVotes();
for(int i=0;i<votes.size();i++){
Vote vote=(Vote)votes.get(i);
总是出现错误,
org.apache.jasper.JasperException: An exception occurred processing JSP page /display.jsp at line 5148: // String teachername = rs.getString("teachername");
49: //int vote = rs.getInt("vote");
50: VoteDao vdao=new VoteDao();
51: ArrayList<Vote> votes=vdao.getAllVotes();
52: for(int i=0;i<votes.size();i++){
53: Vote vote=(Vote)votes.get(i);
54: ArrayList
开始定义了DaoVote类
package dao;
import java.sql.*;
import java.util.*;
import vo.Vote;
public class VoteDao {
private Connection conn=null;
public void initConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
}
public ArrayList<Vote> getAllVotes() throws Exception{
ArrayList<Vote> al=new ArrayList<Vote>();
initConnection();
String sql="select teacherno,teachername,vote from t_vote";
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
Vote vote=new Vote();
vote.setTeacherno(rs.getString("teacherno"));
vote.setTeachername(rs.getString("teachername"));
vote.setVotenumber(rs.getInt("vote"));
al.add(vote);
}
conn.close();
return al;
}
public void updateVotes(String[] teacherno)throws Exception{
initConnection();
String sql="update t_vote set vote=vote+1 where teacherno=?";
PreparedStatement ps=conn.prepareStatement(sql);
for(int i=0;i<teacherno.length;i++){
ps.setString(1,teacherno[i]);
ps.executeUpdate();
}
conn.close();
}
}
在JSP中使用
VoteDao vdao=new VoteDao();
ArrayList<Vote> votes=vdao.getAllVotes();
for(int i=0;i<votes.size();i++){
Vote vote=(Vote)votes.get(i);
总是出现错误,
org.apache.jasper.JasperException: An exception occurred processing JSP page /display.jsp at line 5148: // String teachername = rs.getString("teachername");
49: //int vote = rs.getInt("vote");
50: VoteDao vdao=new VoteDao();
51: ArrayList<Vote> votes=vdao.getAllVotes();
52: for(int i=0;i<votes.size();i++){
53: Vote vote=(Vote)votes.get(i);
54: ArrayList
有可能是jar包的问题
刚才搜了一下,说把jar包放到lib目录下或许可以解决
ArrayList<Vote> votes=new ArrayList<Vote>();
压根就没赋值
initConnection();
人家有实例化调用的方法好伐·
请认真
我怎么感觉是泛型的问题呢,Vote类成员变量只有这三个?实在不行就把泛型去掉吧,试试。
private Connection conn=null;
public void initConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
this.conn = conn; //加上这个
}
org.apache.jasper.JasperException: An exception occurred processing JSP page /display.jsp at line 51
Vote.java:package vo;public class Vote {
private String teacherno;
private String teachername;
private int votenumber;
public String getTeacherno(){
return teacherno;
}
public void setTeacherno(String teacherno){
this.teacherno=teacherno;
}
public String getTeachername(){
return teachername;
}
public void setTeachername(String teachername){
this.teachername=teachername;
}
public int getVotenumber(){
return votenumber;
}
public void setVotenumber(int votenumber){
this.votenumber=votenumber;
}
}VoteDao.java:
package dao;
import java.sql.*;
import java.util.*;
import vo.Vote;
public class VoteDao {
private Connection conn=null;
public void initConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
this.conn=conn;
}
public ArrayList<Vote> getAllVotes() throws Exception{
ArrayList<Vote> al=new ArrayList<Vote>();
initConnection();
String sql="select teacherno,teachername,vote from t_vote";
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
Vote vote=new Vote();
vote.setTeacherno(rs.getString("teacherno"));
vote.setTeachername(rs.getString("teachername"));
vote.setVotenumber(rs.getInt("vote"));
al.add(vote);
}
conn.close();
return al;
}
public void updateVotes(String[] teacherno)throws Exception{
initConnection();
String sql="update t_vote set vote=vote+1 where teacherno=?";
PreparedStatement ps=conn.prepareStatement(sql);
for(int i=0;i<teacherno.length;i++){
ps.setString(1,teacherno[i]);
ps.executeUpdate();
}
conn.close();
}
}vote.jsp:
<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%>
<%@ page import="dao.VoteDao" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'vote.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%
String[] teacherno=request.getParameterValues("teacherno");
//Class.forName("com.mysql.jdbc.Driver");
//Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
//String sql = "update t_vote set vote=vote+1 where teacherno=?";
//PreparedStatement ps=conn.prepareStatement(sql);
//ps.setString(1,teacherno);
//ps.executeUpdate();
//ps.close();
//conn.close();
VoteDao vdao= new VoteDao();
vdao.updateVotes(teacherno);
%>
<jsp:forward page="display.jsp"></jsp:forward>
</body>
</html>display.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="dao.VoteDao" %>
<%@ page import="vo.Vote" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'display.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<form action="vote.jsp" method="post">
<table align="center">
<caption> 欢迎给教师投票 <input type="submit" value="提交投票"> </caption>
<tr bgcolor = "yellow">
<td> 编号 </td>
<td> 姓名 </td>
<td> 得票数 </td>
<td> 投票 </td>
</tr>
<%
//request.setCharacterEncoding("utf-8");
//response.setContentType("text/html;charset=utf-8");
//String Url=" jdbc:sqlserver://localhost:3306;DataBaseName=school;user=root&password=mysqladmin&useUnicode=true&characterEncoding=gb2312";
//Class.forName("com.mysql.jdbc.Driver");
//Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
//Statement stat = conn.createStatement();
//String sql = "select teacherno,teachername,vote from t_vote";
//ResultSet rs = stat.executeQuery(sql);
//while(rs.next()){
// String teacherno = rs.getString("teacherno");
// String teachername = rs.getString("teachername");
//int vote = rs.getInt("vote");
VoteDao vdao=new VoteDao();
//ArrayList<Vote> votes=new ArrayList<Vote>();
ArrayList<Vote> votes=vdao.getAllVotes();
for(int i=0;i<votes.size();i++){
Vote vote=(Vote)votes.get(i);
%>
<tr bgcolor = "pink">
<td><%= vote.getTeacherno() %></td>
<td><%= vote.getTeachername() %></td>
<td><img src="img/bar.jpg" width="<%= vote.getVotenumber() %>" height="10"> <%=vote.getVotenumber() %></td>
<td><input name="teacherno" type="checkbox" value="<%= vote.getTeacherno() %>"></td>
</tr>
<%
}
//stat.close();
//conn.close();
%>
</table>
</form>
</body>
</html>
最后是出现的错误:
HTTP Status 500 - An exception occurred processing JSP page /display.jsp at line 52type Exception reportmessage An exception occurred processing JSP page /display.jsp at line 52description The server encountered an internal error that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: An exception occurred processing JSP page /display.jsp at line 5249: //int vote = rs.getInt("vote");
50: VoteDao vdao=new VoteDao();
51: //ArrayList<Vote> votes=new ArrayList<Vote>();
52: ArrayList<Vote> votes=vdao.getAllVotes();
53: for(int i=0;i<votes.size();i++){
54: Vote vote=(Vote)votes.get(i);
55:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root causejava.lang.NullPointerException
dao.VoteDao.getAllVotes(VoteDao.java:16)
org.apache.jsp.display_jsp._jspService(display_jsp.java:111)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 logs.Apache Tomcat/6.0.37
getAllVotes方法的16行Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
这行代码修改成
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
应该没问题了
dao.VoteDao.getAllVotes(VoteDao.java:16)
很明显的空指针异常,你打个断点看一下,或者system.out看一下是个什么情况。。