Olá pessoal, estou estudando Java EE e estou fazendo uma aplicação para aprender. Estou com o seguinte problema.
Mapeei uma um Servlet que estou chamando ele de frontController. Ele recebe todas as requisições ela está com o annotation @WebServlet(urlPatterns = {"*.jsp"}).
Segue um trecho do código abaixo.
public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
displayPage = request.getParameter("display_page");
action = request.getParameter("action");
if(action == null) {
action = "formGenerate";
}
if(displayPage == null) {
displayPage = "home";
request.setAttribute("display_page", "ticket");
}
if(displayPage.equals("home")) {
HomeServlet homeServlet = new HomeServlet();
homeServlet.formGenerate(request, response);
}
if(displayPage.equals("user")) {
UserServlet userServlet = new UserServlet();
if(action.equals("formGenerate")) {
userServlet.formGenerate(request, response);
}
if(action.equals("alter")) {
userServlet.alter(request, response);
}
if(action.equals("delete")) {
userServlet.delete(request, response);
}
}
Pelo parâmetro ele sabe qual servlet eu devo chamar se por exemplo eu mandar a url da seguinte forma:
http://apli/index.jsp?display_page=user
Ira cair no if no trecho de código acima if() que ira chamar o método abaixo:displayPage.equals(“user”)
public void formGenerate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {
request.setAttribute("screenName", "Usuários");
request.setAttribute("display_page", "user");
datagrid(request, response);
RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
dispatcher.forward(request, response);
}
No final do método acima eu executo um dispatcher.forward(request, response) o que está ocasionando um loop infinito pois acaba indo para o frontController.
Quem pode me ajudar?
Obrigado