2013-03-31 22 views
1

我有一个jsp页面(带有相应的servlet),无论指定哪个路径,都需要打开它。例如我的jsp是webapps/test/index.jsp 它应该以http:// localhost/[path]打开,其中路径是一个任意字符串。当路径是动态的时候打开一个jsp页面

eglocalhost/xxxx和localhost/yyyy应打开相同的webapps/test/index.jsp。

我正在使用Tomcat 7.0和Servlet 3.0。

这可以通过tomcat或servlet配置实现吗?有什么选择可以做到这一点?

在此先感谢。

回答

3

您可以通过注册一个新的servlet映射/*到JSP页面的web.xml

(...) 

<servlet> 
    <servlet-name>index-view</servlet-name> 
    <jsp-file>/test/index.jsp</jsp-file> 
</servlet> 

<servlet-mapping> 
    <servlet-name>index-view</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

(...) 

Oracle的网页更多信息:(LINK)

+0

谢谢。有用。 – 2late

1

您可以创建一个ServletFilter中,并在过滤器中使用的requestDispatcher.forward方法将请求转发到目标页面。您可以使用

String url = ((HttpServletRequest) request).getRequestURL().toString(); 

获得请求的URL转发使用

request.getServletContext().getRequestDispatcher(newUrl) 
        .forward(request, response); 
0

我认为你应该检查你的项目的config文件的要求,确保servlet的映射是正确的和独特的网站.xml。