2014-06-09 72 views
1

我可以使用一些幫助來獲取來自mysql數據庫的值,並將其解析爲一個servlet,該servlet打開一個jsp文件「Showlist.jsp」並擁有所有值作爲參數。從MySQL數據庫獲取值以顯示在JSP中(JAVA)

我在我的數據庫包含TABEL:

ID, Name, Initials, cpr, password, role. 

我在系統中創建3個用戶,而我想告訴所有的用戶在JSP文件。

現在我有包含以下類3層:

View層 - HTML/jsp文件

功能層 - 類功能

數據層 - DAOoperator類(包含mysql語句) - DTOoperator類(這是我用getter和setter方法的對象) - class DataAccess(包含連接到mysql數據庫)

所有這些都由一個名爲Controller的servlet控制。

有沒有簡單的方法來做到這一點?

回答

0

在servlet中訪問DAO並調用返回用戶列表的getUser()方法。然後,將結果設置爲請求。

request.setAttribute("users", userList); 

在JSP中你可以得到它:

<% List<User> userList = (List<User>)request.getAttribute("users"); %> 

更好的辦法是在JSP,而不是普通的Java代碼使用JSTL。

+0

但是,在的getUser()方法我DAO類,我應該從tabel運行選擇*右?然後是什麼? – Pixel

+1

**從未**建議* Scriplet *在21世紀。 – Braj

+0

@Braj你是對的。 – SeeM

1

決不使用Scriplet在21世紀,而不是使用JavaServer Pages Standard Tag Library

更多關於Oracle Tutorial - Using JSTL


邏輯:簡單地獲取數據形成的Servlet數據庫並填充數據POJO類,並將所有用戶的最終列表設置爲請求屬性,最後將請求轉發到JSP頁面。

示例代碼:

User.java

public class User{ 
    private String ID, Name, Initials, cpr, password, role; 
    // getter and setter  
} 

的Servlet:

List<User> list = new ArrayList<User>(); 
//fetch the record form database 
// populate the record in User POJO class 
// add the users in the list 

// finally set the list as request attribute 
request.setAttribute("users",list); 

// forward the request to the JSP 
request.getRequestDispatcher("/xyz.jsp").forward(request,response); 

xyz.jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 

<table border="1"> 
    <c:forEach items="${ requestScope.users}" var="user"> 
     <tr> 
      <td><c:out value="${user.ID }" /></td> 
      <td><c:out value="${user.Initials }" /></td> 
      <td><c:out value="${user.cpr }" /></td> 
      <td><c:out value="${user.role }" /></td> 
     </tr> 
    </c:forEach> 
</table> 
相關問題