Reputation: 369
I could use some help how to get values from a mysql database, and parse it to a servlet, which opens a jsp file "Showlist.jsp" and have all the values as parameter.
My tabel in my database contains:
ID, Name, Initials, cpr, password, role.
I have created 3 users in my system, and i want to show all users in a jsp file.
Right now i have 3 layers which contain the following classes:
View layer - html / jsp files
Function layer - Class function
Data layer - Class DAOoperator (Contains mysql statements. - Class DTOoperator (Which is my object with getter and setter methods) - class DataAccess (contains connection to mysql database)
All this is controlled by a servlet called Controller.
Is there an easy way to do this??
Upvotes: 1
Views: 4189
Reputation: 46841
Never use Scriplet in 21st century instead use JavaServer Pages Standard Tag Library
For more about Oracle Tutorial - Using JSTL
Logic: Simply fetch the data form the database in Servlet and populate the data in a POJO class and set the final list of all the users as request attribute and finally forward the request to the JSP page.
Sample code:
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>
Upvotes: 2
Reputation: 43
In the servlet you access the DAO and call the getUser() method which returns a list of user. Then you set the result to the request.
request.setAttribute("users", userList);
In the jsp you can get it by:
<% List<User> userList = (List<User>)request.getAttribute("users"); %>
a better approach is to use jstl in the jsp instead of plain java code.
Upvotes: 0