检索servlet中的上一页路径?

时间:2015-10-13 11:08:49

标签: java servlets

如果用户没有权限,我会尝试保留用户跟踪,然后将其返回到他请求的页面(上一页路径)并带有消息。在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);
}

2 个答案:

答案 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