Servlet
package com.crud.app;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import jakarta.annotation.Resource;
/**
 * Servlet implementation class ServletUtil
 */
@WebServlet("/ServletUtil")
public class ServletUtil extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    @Resource(name="jdbc/web_student_tracker")//db name
    public StudentDbUtil studentDB;
    private DataSource datasource;//connection pool
         
    public ServletUtil() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Override
    public void init() throws ServletException {//will be intialised when the server is called
        super.init();
        try {
            studentDB=new StudentDbUtil(datasource);//passing the connection pool
        }
        catch(Exception es) {//if db has an error
            es.printStackTrace();
        }
        
    }
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        listStudent(request,response);
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }
    private void listStudent(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException {
        // TODO Auto-generated method stub
        List<StudentModel> studentData=studentDB.getStudent();//get student data
        request.setAttribute("STUDENT_DATA", studentData);//setting an attribute so that can be iterated
        RequestDispatcher dispatcher=request.getRequestDispatcher("/listStudent.jsp");//dispatching to jsp
        dispatcher.forward(request, response);
    }
}
Web.xml
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
         
  <display-name>Student Tracker App</display-name>
  <servlet>
    <servlet-name>ServletUtil</servlet-name>
    <servlet-class>com.crud.app.ServletUtil</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletUtil</servlet-name>
    <url-pattern>/ServletUtil</url-pattern>
  </servlet-mapping>
  <error-page>
    <error-code>404</error-code>
    <location>/error.jsp</location>
  </error-page>
  <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/web_student_tracker</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
DB UTILITY
package com.crud.app;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
public class StudentDbUtil {
public DataSource datasource;
public StudentDbUtil(DataSource thedatasource) {
    datasource=thedatasource;
}
public List<StudentModel>getStudent() throws SQLException{
    
    List<StudentModel> newList=new ArrayList<>();
    Connection mycnt=null;
    Statement mystatement=null;
    ResultSet result=null;
    try {
        mycnt=datasource.getConnection();
        String sqlQuery="select * from student order by last_name";
        mystatement=mycnt.createStatement();
        result=mystatement.executeQuery(sqlQuery);
        
        while(result.next()) {
            //retrieve dsta
            int id=result.getInt("id");
            String firstName=result.getString("firstName");
            String lastName=result.getString("lastName");
            String email=result.getString("email");
            //create an object
            StudentModel studentDataObj=new StudentModel(id,firstName,lastName,email);
        System.out.println(studentDataObj + "obj");
        newList.add(studentDataObj);
        }
        return newList;
    }
    finally {
        close(mycnt,mystatement,result);
    }
    
}
private void close(Connection mycnt, Statement mystatement, ResultSet result) {
//to prevent memory leak
    try {
        if(mycnt!=null) {
            mycnt.close();
        }
        if(mystatement!=null) {
            mystatement.close();
        }
        if(result!=null) {
            mystatement.close();
        }
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}
}
Model Class
package com.crud.app;
public class StudentModel {
public int id;
public String firstName;
public String lastName;
public String email;
public StudentModel(String firstName, String lastName, String email) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
}
public StudentModel(int id, String firstName, String lastName, String email) {
    this.id = id;
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getFirstName() {
    return firstName;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
public String getLastName() {
    return lastName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}
public String getEmail() {
    return email;
}
public void setEmail(String email) {
    this.email = email;
}
}
 While running this project on server it is returning 404 on browser with a Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.I still cannot understand what is behind this.Any help would be much appreciated.
From this image the path and file structure can be analysed.
While running this project on server it is returning 404 on browser with a Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.I still cannot understand what is behind this.Any help would be much appreciated.
From this image the path and file structure can be analysed.
 
    