【问题标题】:Accessing Tomcat Context Path from Servlet从 Servlet 访问 Tomcat 上下文路径
【发布时间】:2010-09-08 14:57:27
【问题描述】:

在我的 Servlet 中,我想访问上下文的根,以便我可以做一些 JavaScript 缩小。

可以在安装过程中进行缩小,但我想在 Servlet 启动时进行以降低实施成本。

有谁知道获取上下文目录以便我可以将文件加载和写入磁盘的方法?

【问题讨论】:

    标签: java tomcat servlets


    【解决方案1】:

    我在谷歌上搜索结果并没有找到任何地方。在需要使用 Java Script 访问当前 contextPath 的 JSP 页面中,这实际上是相当容易的。

    只需将以下行放入您的 html 头 中的 script 块内。

    // set up a global java script variable to access the context path
    var contextPath = "${request.contextPath}" 
    

    【讨论】:

      【解决方案2】:

      这应该为您提供可用于提取/编辑文件的真实路径。

      Javadoc Link

      我们在上下文监听器中做类似的事情。

      public class MyServlet extends HttpServlet {
      
          public void init(final ServletConfig config) {
              final String context = config.getServletContext().getRealPath("/");
              ...
          }
      
          ...
      }
      

      【讨论】:

      • 太棒了!正是我所追求的。我怀疑这就是 wrumsby 在他的回答中所追求的。谢谢大家。这个网站的内容质量继续给我留下深刻印象。
      【解决方案3】:

      在我的 Servlet 中,我想访问上下文的根,以便我可以做一些 JavaScript 缩小

      您也可以通过ServletContext#getResource() 访问WebContent 中的文件。因此,例如,如果您的 JS 文件位于 WebContent/js/file.js,那么您可以在 Servlet 中使用以下内容来获取它的 File 句柄:

      File file = new File(getServletContext().getResource("/js/file.js").getFile());
      

      或获取InputStream

      InputStream input = getServletContext().getResourceAsStream("/js/file.js");
      

      也就是说,您需要多久压缩一次 JS 文件?我从未见过需要基于请求的缩小,它只会不必要地增加很多开销。您可能只想在应用程序启动期间执行一次。如果是这样,那么使用Servlet 是个坏主意。最好使用ServletContextListener 并在contextInitialized() 上做你的事。

      【讨论】:

        【解决方案4】:

        你的意思是:

        public class MyServlet extends HttpServlet {
        
            public void init(final ServletConfig config) {
                final String context = config.getServletContext();
                ...
            }
        
            ...
        }
        

        或者更复杂的东西?

        【讨论】:

        • 这可能是正确的道路,但我不认为它能让我一路走好。我仍然需要能够打开上下文目录中的文件。
        猜你喜欢
        • 2016-04-03
        • 2016-09-13
        • 2013-02-11
        • 1970-01-01
        • 2014-04-24
        • 2011-01-02
        • 1970-01-01
        • 2010-10-25
        • 1970-01-01
        相关资源
        最近更新 更多