我有一个jsp页面(带有相应的servlet),无论指定了什么路径,都需要打开它。例如,我的jsp是webapps / test / index.jsp 它应该以http:// localhost / [path]打开,其中路径是任意字符串。
eglocalhost / xxxx和localhost / yyyy将打开相同的webapps / test / index.jsp。
我正在使用Tomcat 7.0和Servlet 3.0。
这可以通过tomcat或servlet配置实现吗?有什么选择呢?
提前致谢。
答案 0 :(得分:3)
您可以通过在/*
中注册新的servlet来将web.xml
映射到该JSP页面:
(...)
<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)
答案 1 :(得分:1)
您可以创建一个servletfilter,并在该过滤器中使用requestDispatcher.forward方法将请求转发到目标页面。您可以使用
获取请求的网址String url = ((HttpServletRequest) request).getRequestURL().toString();
并使用
转发该请求request.getServletContext().getRequestDispatcher(newUrl)
.forward(request, response);
答案 2 :(得分:0)
我认为您应该检查项目的配置文件,确保web.xml中的servlet映射是正确且唯一的。