Pixel
Pixel

Reputation: 369

Getting values from mysql database to show in JSP (JAVA)

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

Answers (2)

Braj
Braj

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

SeeM
SeeM

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

Related Questions