Issue
I have a web application with a login system, when logging into the website, there is no redirection of the page to the dashboard, When checking the chrome browser terminal, the dashboard file has status code 200, but without page redirection.
package DAO;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AjaxController extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
try {
switch(request.getServletPath()){
case "/Login" : {
String email = request.getParameter("email").trim();
String senha = request.getParameter("senha").trim();
UsuarioDAO usudao = new UsuarioDAO();
if(usudao.login(email, senha)){
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("location", "http://localhost:8080/dbdfacu2/dashboard.jsp");
}
}
break;
case "/Register" : {
String nome = request.getParameter("nome").trim();
String email = request.getParameter("email").trim();
String senha = request.getParameter("senha").trim();
UsuarioDAO usudao = new UsuarioDAO();
try (PrintWriter out = response.getWriter()) {
out.println(usudao.inserir(nome, email, senha));
}
}
break;
}
} catch (Exception erro) {
throw new RuntimeException("ERRO Ajax" + erro);
}
}
}
Solution
Use resp.sendRedirect instead
resp.sendRedirect(req.getContextPath() + "/redirected");
We use original response object to redirect this request to another URL
Answered By - user7294900