日期:2014-05-17  浏览次数:21753 次

request.getHeader("Referer");获取不到地址
a.jsp 页面代码 
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="exception.jsp" %> 
<% 
String aa=" dfdsfds"; 
out.print(Integer.parseInt(aa)); 
%> 

发生错误就会调用exception.jsp 
我想在exception.jsp页面中得到a.jsp页面的地址[最好是物理地址!] 
用request.getHeader("Referer");得出来的是null,用request.getContextPath();得到的是exception.jsp的地址 
用js location.href得到正确a.jsp地址 
为什么 request.getHeader("Referer");得到的是null啊???崩溃了 这个数据我要存到库里不能用js写啊!!!

是不是tomcat设置问题啊!!我记得以前正常的!

------解决方案--------------------
sorry 问题理解错误,我给出解决方案
<%=request.getAttribute("javax.servlet.forward.request_uri") %>

请在 errorpage 里面运行如下代码,就可找到你要的任何东西

Java code
<%
System.out.println("Header....");
Enumeration<String> e = request.getHeaderNames();
String key;
while(e.hasMoreElements()){
  key = e.nextElement();
  System.out.println(key+"="+request.getHeader(key));
}
System.out.println("Attribute....");
e = request.getAttributeNames();
while(e.hasMoreElements()){
  key = e.nextElement();
  System.out.println(key+"="+request.getAttribute(key));
}

System.out.println("Parameter....");
e = request.getParameterNames();
while(e.hasMoreElements()){
  key = e.nextElement();
  System.out.println(key+"="+request.getParameter(key));
}
%>