用于HttpServletRequest#getHeader()
检索 HTTP 引荐来源网址。
HttpSession session = request.getSession();
if(session !=null) {
session.invalidate();
RequestDispatcher rd;
String referrer = request.getHeader("Referer");
if (referrer != null) {
URL ref = new URL(referrer);
// assuming logout request came from the same application
referrer = ref.getPath().substring(request.getContextPath().length());
rd = request.getRequestDispatcher(referrer);
} else {
rd = request.getRequestDispatcher("/index.jsp");
}
rd.forward(request, response);
}
substring()
这样做是为了删除应用程序的上下文根,因为调度程序也会添加相同的内容。如果不删除它,生成的路径将变得无效(前面有两个上下文/webapp/webapp/.. )。