Java 使用bean和servlet显示数据
我还在学习开发网络应用。我偶然发现了这个教程 EmpBean.javaJava 使用bean和servlet显示数据,java,jsp,Java,Jsp,我还在学习开发网络应用。我偶然发现了这个教程 EmpBean.java package form; import java.sql.*; import java.util.*; public class EmpBean { public List dataList(){ ArrayList list=new ArrayList(); try{ Class.forName("com.mysql.jdbc.Driver"); Connection con = Dri
package form;
import java.sql.*;
import java.util.*;
public class EmpBean {
public List dataList(){
ArrayList list=new ArrayList();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from employee");
while(rs.next()){
list.add(rs.getString("name"));
list.add(rs.getString("address"));
list.add(rs.getString("contactNo"));
list.add(rs.getString("email"));
}
}
catch(Exception e){}
return list;
}
}
BeanServlet.java
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("/jsp/beandata.jsp");
rd.forward(req, res);
}
}
Beanda.jsp
<%@page language="java" import="java.util.*" %>
<html>
<body>
<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="168"><%=itr.next()%></td>
<td width="168"><%=itr.next()%></td>
</tr>
<%}%>
</table>
</body>
</html>
名称
地址
联系电话
电子邮件
我用netbeans试过了,效果很好。。然而,我想知道是否可以使用JSTL来表示数据(视图)。c:foreach是您需要的。当然,这是假设你的列表是4的倍数。这是从内存中完成的,所以我不能保证不会有语法错误
<table>
<c:foreach var="item" varStatus="status" items="${requestScope.data}">
<c:choose>
<c:when test="${status.index % 4 == 0}">
<tr>
<td width="119"><c:out value="${item}" /></td>
</c:when>
<c:otherwise>
<td width="168"><c:out value="${item}" /></td>
</c:otherwise>
</c:choose>
<c:if test="${status.index % 4 == 3}">
</tr>
</c:if>
</c:foreach>
</table>
jdbc连接的一个例子将非常有用。。。感谢allAn的JDBC连接示例?您在JDBC连接中使用了相同的方法,答案是“是”。请阅读另一篇关于JSTL的教程。很抱歉造成混淆。。仅说明如何使用jstl@toink:首先要考虑的是,您的列表中包含同一级别的每个记录的每个值。这很难处理,而且容易出错。考虑创建一个VO类,并使用它存储每个元素的数据,然后将它们添加到列表中。