2012-03-14 50 views
0

大家好日子,使用mvc搜索記錄的程序中的Servlet錯誤

首先,我是新來的java世界。我有這個任務來創建一個程序,將使用MVC搜索記錄。我有一個代碼開始,但我有一個錯誤。我希望有人能幫我儘快解決這個問題。

EmpBean.java

package form; 
import java.sql.*; 
import java.util.*; 
public class EmpBean { 

public List dataList(){ 
ArrayList list=new ArrayList(); 
try{ 
Class.forName("org.sqlite.JDBC"); 
     Connection con = DriverManager.getConnection("C:\\SoftdevWorkspace\\mvc\\WebContent\\employee.sql"); 
     Statement st=con.createStatement(); 
     ResultSet rs=st.executeQuery("select * from employee"); 
     while(rs.next()){ 
      list.add(rs.getString("name")); 
      list.add(rs.getString("department")); 
      list.add(rs.getString("email")); 

} 
} 
catch(Exception e){} 
return list; 

} 
} 

BeanInServlet.java

package form; 

import java.io.*; 
import java.util.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class BeanInServlet extends HttpServlet{ 
protected void doGet(HttpServletRequest req, HttpServletResponse res) 
    throws ServletException, IOException{ 
    form.EmpBean p = new form.EmpBean(); 
    List list=p.dataList(); 

    req.setAttribute("data", list); 
    RequestDispatcher rd = req.getRequestDispatcher("/beandata.jsp"); 
    rd.forward(req, res); 
} 
} 

beandata.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1 " 
pageEncoding="ISO-8859-1"%> 
<%@page import="java.util.*" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<table border="1" width="303"> 
<tr> 
<td width="119"><b>Name</b></td> 
<td width="168"><b>Address</b></td> 
<td width="119"><b>Contact no</b></td> 
<td width="168"><b>Email</b></td> 
</tr> 
<% Iterator itr;%> 
<% List data=(List)request.getAttribute("data"); 
for(itr=data.iterator(); itr.hasNext();){ 
%> 
<tr> 
<td width="119"><%=itr.next()%></td> 
<td width="168"><%=itr.next()%></td> 
<td width="119"><%=itr.next()%></td> 
<td width="168"><%=itr.next()%></td> 
</tr> 
<%}%> 
</table> 
</html> 

這裏是錯誤:

org.apache.jasper.JasperException: An exception occurred processing JSP page /beandata.jsp at line 19 

16: </tr> 
17: <% Iterator itr;%> 
18: <% List data=(List)request.getAttribute("data"); 
19: for(itr=data.iterator(); itr.hasNext();){ 
20: %> 
21: <tr> 
22: <td width="119"><%=itr.next()%></td> 

堆棧跟蹤:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

林使用Eclipse靛藍,Tomcat的7,SqliteDev

+3

我們並不真的** **緊急**。如果緊急,你應該早點開始分配;) – beerbajay 2012-03-14 14:09:08

+1

首先,將每列添加到同一個'List'中有點奇怪。其次,您似乎只將3列添加到'List',但打印4.第三,您只調用'hasNext()'一次,但連續調用4次next()。 – beerbajay 2012-03-14 14:13:42

+1

對不起,誤用字。我的錯。承諾不要再做一次。 – Zark 2012-03-14 14:13:45

回答

0

可能是你可以嘗試for-each循環結構,看看是否能帶走的錯誤。 你的程序看起來對我而言是好的...

正如@Normalocity指出的那樣,你到目前爲止試圖擺脫這個問題?