【问题标题】:Open a jsp page when path is dynamic路径为动态时打开jsp页面
【发布时间】:2013-03-21 21:58:10
【问题描述】:

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

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

我正在使用 Tomcat 7.0 和 Servlet 3.0。

这可以通过tomcat或servlet配置实现吗?有哪些选项可以做到这一点?

提前致谢。

【问题讨论】:

    标签: java jsp tomcat7 servlet-3.0


    【解决方案1】:

    您可以通过在您的web.xml 中注册一个新的servlet 来将/* 映射到该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)

    【讨论】:

      【解决方案2】:

      我认为你应该检查项目的配置文件,确保 servlet 映射在 web.xml 中正确且唯一。

      【讨论】:

        【解决方案3】:

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

        获取请求的url
        String url = ((HttpServletRequest) request).getRequestURL().toString();
        

        并使用

        转发该请求
        request.getServletContext().getRequestDispatcher(newUrl)
                            .forward(request, response);
        

        【讨论】:

          猜你喜欢
          • 2021-06-26
          • 2012-08-28
          • 2013-01-31
          • 2014-01-17
          • 2023-04-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-01
          相关资源
          最近更新 更多