あなたがブラウザに依存しているので、それが送信されているかどうかにかかわらず、私はリファラーヘッダを信用しません。むしろ、現在のリクエストURIに基づいて自分自身を提供してください。
response.sendRedirect("login?from=" + URLEncoder.encode(request.getRequestURI(), "UTF-8"));
してからログインフォームで
<form action="login" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="hidden" name="from" value="${param.from}">
<input type="submit">
</form>
してからログインアクション
User user = userDAO.find(username, password);
if (user != null) {
session.setAttribute("user", user);
response.sendRedirect(request.getParameter("from"));
} else {
request.setAttribute("error", "Unknown login");
request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);
}
更新中:またはあなたがなりたい場合は、パラメータレス(他の答えに対するあなたのコメントに従って)、(ab)セッションを使用します。
session.setAttribute("from", request.getRequestURI());
response.sendRedirect("login");
してからログインアクションで
response.sendRedirect((String) session.getAttribute("from"));
session.removeAttribute("from");
さて、GETのparametresは本当にそれを行う唯一の方法ですか? URLを非常に短く意味のあるものにしようとしています。残念ながら、これはGETパラメータを意味しません。 – DanielGibbs
他の回答にあなたのコメントを見た後、私はすでに回答を1秒更新しました。 F5を押してください。 – BalusC
ああ、セッション乱用。私はすでにどこかでそれを使用しているかもしれないと思うので、ここでもそれを使うかもしれません。ありがとう! – DanielGibbs