是否可以使用Servlet / RequestDispatcher隐藏请求URL?

时间:2016-03-16 17:38:32

标签: java jsf servlets

我正在一个JSF 2项目中工作,该项目有""在导航期间隐藏URL。我说"东西"因为我无法弄明白......我相信JSF或Primefaces的相关内容,但我无法准确了解。

我被要求执行一个可以通过桌面项目登录Web项目的解决方案。

我正在对它进行一些测试,但我所做的是一个Servlet,因为我无法从桌面应用程序调用ManagedBean,所以我打开浏览器传递一些参数,然后Servlet创建会话。

我注意到的主要问题是,当以这种方式执行登录时,浏览器开始显示网址导航,这是一种不受欢迎的行为。我认为它与我从桌面应用程序和RequestDispatcher调用的URL有关。

这是登录时通过login.xhtml显示的网址 - > http://localhost:9080/myContextRoot/

这是当Servlet进行登录时发生的情况 - > http://localhost:9080/myContextRoot/pages/business/index.xhtml

我能得到任何提示???

以下是我打开浏览器的方式

        java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));

和Servlet

 @WebServlet(name = "servletLogin", urlPatterns = "/ServletLogin")
public class LogonServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
 if (validated()) {
 req.setAttribute("user", user);
        req.getRequestURL();
        req.getSession().setAttribute("user", user);
        RequestDispatcher dispatcher = req.getRequestDispatcher("/pages/business/index.xhtml");   
        dispatcher.forward(req, res);
        return;
}
}

0 个答案:

没有答案