Java J2E无法在我的servlet中使用sendRedirect()
我有一个错误,我自己似乎无法纠正
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if (session.getAttribute("username") != null) {
if ((boolean)session.getAttribute("usertype") == true) {
int userID = Integer.parseInt(request.getParameter("id"));
UserDAO dao = new UserDAO();
User user = dao.ReturnUserID(userID);
dao.DeleteUser(user);
dao.Close();
response.sendRedirect("/SupTracking/admin");
}
response.sendRedirect("/SupTracking/index");
}
response.sendRedirect("/SupTracking/index");
}
我在响应中得到一个错误。sendRedirect(“/SupTracking/admin”),表示无法使用sendRedirect(),因为响应已发送
这个错误应该很简单,只是我不明白我在这段代码中发送了什么东西
下面是确切的堆栈跟踪:
java.lang.IllegalStateException: Impossible d''appeler "sendRedirect()" après que la réponse ait été envoyée
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:494)
com.SupTracking.servlets.admindeluser.doGet(admindeluser.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
我做错了什么
# 1 楼答案
因为当条件变为真时,响应对象会多次调用sendRedirect()
试试这个:
# 2 楼答案
对于响应对象,只能调用
sendRedirect
一次。您应该更改逻辑,以便知道它只会被调用一次,如下所示:你的问题是:
您不能多次重定向,响应只能重定向到一个页面
# 3 楼答案
在每次重定向后添加
return
语句。否则,如果一个或两个条件都为真,则会多次重定向