我試圖創建一個Java控制器servlet來將用戶登出會話。 我知道有兩種方法,一種是使用sendRedirect,另一種是RequestDispatcher。在我的情況下,我想將它們發送到域外的頁面,這(對我有限的Java知識)要求我使用sendRedirect。sendRedirect不重定向
但是,我收到一個錯誤302並且頁面沒有被重定向。我嘗試過一個教程版本,它的工作原理,但是當我在我的Servlet中實現它時,它會返回錯誤信息並且不會重定向。
我希望有人能指出我正確的方向。
我使用的代碼如下。我使用NetBeans模板:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
HttpSession session = request.getSession(false);
if (session == null) {
System.out.println("Invalid");
response.sendRedirect("http://www.google.com");
return;
} else {
System.out.println("Invalidated");
session.invalidate();
response.sendRedirect("http://www.google.com");
return;
/*
String url = "/logout.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(url);
rd.include(request, response);
*/
}
/* TODO output your page here
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet LogOut</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet LogOut at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
*/
} finally {
out.close();
}
}
編輯:我打電話通過<a href>
標籤的servlet。 Servlet名稱是LogOut.java。
<div data-role="header" data-position="fixed">
<h1>Menu</h1>
<a href="LogOut" data-theme="i">Log Out</a>
</div>
doGet和doPost調用processRequest。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
'302'是不是一個錯誤;這是一個狀態碼,告訴瀏覽器重定向。 – skaffman
嗨skaffman,感謝您的快速回復。我不確定我自己,因爲它基於使用螢火蟲搜索到的內容。但是,阻止瀏覽器重定向的是什麼?這可能是由於我在jsp頁面中使用jQueryMobile嗎? – Rax