在我的Servlet中,我想访问上下文的根,以便我可以做一些JavaScript缩小。从Servlet访问Tomcat上下文路径
在安装过程中可以将minify作为安装过程的一部分,但我希望在Servlet启动时做到这一点,以降低实施成本。
有谁知道获取上下文目录的方法,以便我可以加载和写入文件到磁盘?
在我的Servlet中,我想访问上下文的根,以便我可以做一些JavaScript缩小。从Servlet访问Tomcat上下文路径
在安装过程中可以将minify作为安装过程的一部分,但我希望在Servlet启动时做到这一点,以降低实施成本。
有谁知道获取上下文目录的方法,以便我可以加载和写入文件到磁盘?
这应该为您提供可以用来提取/编辑文件的真实路径。
我们正在做一个上下文侦听类似的东西。
public class MyServlet extends HttpServlet {
public void init(final ServletConfig config) {
final String context = config.getServletContext().getRealPath("/");
...
}
...
}
你的意思是:
public class MyServlet extends HttpServlet {
public void init(final ServletConfig config) {
final String context = config.getServletContext();
...
}
...
}
或者更复杂的东西?
这可能是正确的道路,但我认为它不会让我一路走来。我仍然需要能够打开上下文目录中的文件。 – 2008-09-11 20:42:49
我在Google上搜索结果,没有得到任何地方。在需要使用Java脚本访问当前contextPath的JSP页面中,它实际上非常简单。
只需将以下行写入html头内的script
块。
// set up a global java script variable to access the context path
var contextPath = "${request.contextPath}"
在我的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()
上做你的事情。
太棒了!到底是什么我以后。 我怀疑这是什么wrumsby在他的答案射击。谢谢你们。本网站的内容质量继续令我印象深刻。 – 2008-09-12 05:56:36