2012-03-14 4 views
-1

아직 웹 애플리케이션 개발을 배우고 있습니다. 이 튜토리얼을 보았습니다.빈과 서블릿을 사용하여 데이터를 표시합니다.

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 = 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; 

} 
} 

BeanInServlet.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); 
    } 
} 

<%@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> 

beandata.jsp 내가 넷빈즈와 함께이 시도하고 그러나 내가 JSTL 수 있다면 궁금해 .. 작동 데이터를 표시하는 데 사용하십시오 (보기).

+0

예를 들어 jdbc 연결을 사용하면 매우 도움이 될 것입니다 ... 감사합니다 모두 – toink

+0

JDBC 연결의 예는 무엇입니까? 당신은 JDBC 연결과 같은 것을 사용하고 있습니다. – Lion

+2

대답은 "예"입니다. JSTL을 다루는 다른 튜토리얼을 읽으십시오. – BalusC

답변

1

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> 
관련 문제