如果用户没有权限,我会尝试保留用户跟踪,然后将其返回到他请求的页面(上一页路径)并带有消息。在doGet()
中,当我尝试使用request.getPathInfo()
获取请求网址时,它会在jboss控制台中提供null
。
我的doGet源代码来自servlet:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
if (!validateUserSession(request, response)) {
return;
}
String pathTrace = request.getPathInfo();
System.out.println("Request is comming from : " + pathTrace); // null
loadNavigation(request, response);
ServletContext context = getServletContext();
RequestDispatcher rd = context
.getRequestDispatcher("/jsp/admin_account/InviteUser.jsp");
rd.forward(request, response);
}
答案 0 :(得分:3)
从请求标头中获取它。
String pathTrace = request.getHeader("referer");
System.out.println("Request is comming from : " + pathTrace);
答案 1 :(得分:0)
从JavaDocs开始,getPathInfo可能会返回 NULL
public java.lang.String getPathInfo()
返回与客户端发出此请求时发送的URL关联的任何额外路径信息。额外路径信息遵循servlet路径,但在查询字符串之前。如果没有额外的路径信息,则此方法返回null。
使用以下API
public java.lang.String getServletPath()
返回此请求调用servlet的URL的一部分。这包括servlet名称或servlet的路径,但不包括任何额外的路径信息或查询字符串。与CGI变量SCRIPT_NAME的值相同。 返回: 包含被调用的servlet的名称或路径的String,在请求URL中指定,已解码。
编辑:因为您需要传递servlet URL
将referrer_url添加为传递的servlet中的另一个param,并将值传递给您尝试获取路径的其他servlet