阻止从浏览器访问jspx页面

时间:2011-09-02 08:06:02

标签: jsf web.xml oracle-adf

我在WEB-INF下创建了一个test.jspx文件,我试图通过请求调度程序的servlet访问它,但我得到了java.lang.RuntimeException: Cannot find FacesContext

web.xml映射如下:

 <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

如果我使用.jsp,它可以正常工作。

我的请求调度程序代码如下:

RequestDispatcher dispatcher=getServletContext().getRequestDispatcher("/WEB-INF/test.jspx?sessid="+id);
dispatcher.forward( request, response );

1 个答案:

答案 0 :(得分:1)

请求网址(您在浏览器地址栏中看到)或转发网址(您在RequestDispatcher#forward()中使用的)必须匹配FacesServlet的网址格式为了让它在JSF页面中运行和处理所有JSF组件。

您已将FacesServlet映射到/faces/*的网址格式,并且您尝试从某个自制的servlet调用它(为什么?),因此转发网址必须与该网址格式匹配。将页面放在/WEB-INF之外,然后转发到/faces/test.jspx