The jsp-file directive in web.xml allows mapping of JSPs to concrete URLs: <servlet> <servlet-name>My Hidden Page</servlet-name> <jsp-file>/mydir/foo.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>My Hidden Page</servlet-name> <url-pattern>/hidden</url-pattern> </servlet-mapping> Shame on me, I didn't know about this. As seen here: http://mail-archives.apache.org/mod_mbox/tomcat-users/200107.mbox/%3CPine.BSF.4.21.0107271807540.7976-100000@localhost%3E