HttpServletRequest request

img


像这样跳转到真实路径后,怎样让浏览器上的地址栏显示的是虚拟路劲,而不是真实路劲

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在Java Web中,可以通过在Servlet中使用请求转发(RequestDispatcher)的方式来实现URL地址的伪装。假设有一个Servlet,可以将实际路径映射为虚拟路径,并将请求转发到相应的目标页面,如下所示:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String realPath = request.getParameter("data-href");
    String virtualPath = request.getParameter("href");
    RequestDispatcher rd = request.getRequestDispatcher(realPath);
    request.setAttribute("virtualPath", virtualPath);
    rd.forward(request, response);
}


在转发请求之前,可以将虚拟路径设置为请求属性,然后在目标页面中使用该属性来构造相应的URL。例如,在目标JSP页面中可以使用以下代码来构造虚拟路径:

<a href="<%=request.getAttribute("virtualPath")%>">a标签</a>


在这个例子中,getAttribute方法用于获取请求属性,从而获取虚拟路径。这样,即使在地址栏中看到的是真实路径,但是用户点击链接后仍然可以访问到对应的虚拟路径。