abrufen von Daten aus der Datenbank-Tabelle und zeigt Sie in atable mit html
ich bin ein beginer und arbeite momentan an meiner letzten Schule Projekt erfordern das abrufen von Daten aus einer Datenbanktabelle und anzeigen der Daten in einer html-Seite. gesucht hab ich viel, aber noch kein Fortschritt. ich wurde auf diese Seite verlinkt, über google, ich sah ein format und ich versuche das gleiche zu tun, aber nach ausführen des Codes bekomme ich diesen Fehler
Ausnahme Bericht
message An exception occurred processing JSP page /crimeinfo.jsp at line 32 description The server encountered an internal error that prevented it from fulfilling this request.
Ausnahme
org.apache.jasper.JasperException: An exception occurred processing JSP page /crimeinfo.jsp at line 32
29:
30:
31: <%List <String> data =(List)request.getAttribute("data");
32: Iterator <String> itr = data.iterator() ;
33: for (itr = data.iterator();
34: itr.hasNext();)
35: {%>
bitte ich brauche Hilfe. ich dont wissen, was anderes zu tun. thnks...
viewcrime.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--web.xml code-->
<servlet>
<servlet-name>viewcrimereport</servlet-name>
<servlet-class>viewcrimereport</servlet-class>
<servlet-mapping>
<servlet-name>viewcrimereport</servlet-name>
<url-pattern>viewcrimereport</url-pattern>
</servlet-mapping></servlet>
viewcrimereport.java
public class viewcrimereport extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private ServletConfig config;
String page = "crimeinfo.jsp";
public void init(ServletConfig config)
throws ServletException{
this.config = config; }
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out=response.getWriter();
response.setContentType("text/html");
Connection conn = null;
String url = "jdbc:mysql://localhost/citycrime";
String userName = "root";
String passw = "jids";
PreparedStatement pst = null;
ResultSet rs;
ArrayList<String> datalist = new ArrayList<String>();
try{
int i=0;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, userName, passw);
pst = conn.prepareStatement("");
String sql ="select suspectname,suspectaliases,suspectht,suspectgender,features,crimeaddress,crimetype,caseno,casestatus from crimereport";
pst.executeQuery(sql);
rs = pst.getResultSet();
while(rs.next()){
datalist.add(rs.getString("suspectname"));
datalist.add(rs.getString("suspectaliases"));
datalist.add(rs.getString("suspectht"));
datalist.add(rs.getString("suspectgender"));
datalist.add(rs.getString("features"));
datalist.add(rs.getString("crimeaddress"));
datalist.add(rs.getString("crimetype"));
datalist.add(rs.getString("caseno"));
datalist.add(rs.getString("casestatus"));}
rs.close();pst.close(); }
catch(Exception e){System.out.println("Exception is;"+e);}
request.setAttribute("data",datalist);
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
if (dispatcher != null){
dispatcher.forward(request, response);
}
}
}
crimeinfo.jsp
<%@ page language="java" import="java.sql.*" import="java.util.*"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Crime Report</title>
</head>
<body>
<table border="1" with="600">
<tr><td><tb><td>SuspectName</td></b>
<td><tb>SuspectAlias</b></td>
<td><tb>suspectaliases</tb></td>
<td><tb>Height</tb></td>
<td><tb>suspectht</tb></td>
<td><tb>Gender</tb></td>
<td><tb>suspectgender</tb></td>
<td><tb>Features</tb></td>
<td><tb>features</tb></td>
<td><tb>Address</tb></td>
<td><tb>crimeaddress</tb></td>
<td><tb>CrimeType</tb></td>
<td><tb>crimetype</tb></td>
<td><tb>CaseNumber</tb></td>
<td><tb>caseno</tb></td>
<td><tb>Status</tb></td>
<td><tb>casestatus</tb></td></tr>
<% Iterator <String> itr;%>
<%List data =(List)request.getAttribute("datalist");
for (itr = data.iterator();
itr.hasNext();){%><tr>
<%String s =(String)itr.next(); %>
<td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td>
<tr><td><%=itr.next()%>></td></tr><%} %>
</table>
</body>
</html>
- bitte zum besseren Verständnis dieser der erste code ist die xml-code viewcrimereport.xml
- ernst, schlechte Formatierung. und "Daten" selbst ist der plural von "datum". es ist nichts anderes als "Daten"
- ich habe Ihre Frage beantwortet, Kommentar wenn Sie das Gesicht noch ein problem
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Zeile 32, machen es
Iterator itr = data.iterator() ;
empfehle ich Ihnen die Verwendungwhile(itr.hasNext()
anstelle der for-Schleife für mehr Klarheit des Codes. Auch die Initialisierung Teil in der for-Schleife ist retundant.benennen Sie Ihre xml-Datei zu
web.xml
und legen Sie es als\WEB-INF\web.xml
in web.xml url-Muster sollte
<url-pattern>/viewcrimereport</url-pattern>
für Ihren servlet, da Sie haben bereits erweiterte
HttpServlet
Klasse, es gibt keine Notwendigkeit zu implementierenServlet
- Schnittstelle. HttpServlet-Klasse bereits implementiert, die Schnittstellehaben Sie nicht geschlossen Ihre Verbindung. verwenden
conn.close()
.in Ihre jsp, sollte es
<%List data =(List)request.getAttribute("data");
denn Sie haben set-request Attribut mit dem Namendata
und nicht "datalist"verwenden von Skriptlets (diese
<% %>
Dinge) abgeschreckt wird. dies sehenda Sie nicht ausgeben, die nichts von Ihr servlet zu Ihrem browser, können Sie weglassen der folgende code
PrintWriter out=response.getWriter();
response.setContentType("text/html");
meiner persönlichen Meinung nach, würde ich vorschlagen, zu verwenden
service
stattdoGet()
. Service-Methode wird selbst nennen die doGet-Methode. Plus kann es auch aufrufen, andere meyhods wie doPost, doHead etc, wenn es erforderlich ist.Können Sie die
datalist.get(column index)
Methode derArrayList
. Für mehr details Lesen Sie bitte:http://www.tutorialspoint.com/java/java_arraylist_class.htm