如何从servlet获取JSP的服务器文件路径?

时间:2017-04-06 15:48:19

标签: java html jsp servlets web

这是我提出这个问题的第二次尝试 - 这次我会提供更多详细信息,以帮助我们获得明智的答案。

我在这里尝试真正做的是填充一个下拉菜单,其中的数据是从应该在页面加载上运行的可执行文件动态生成的。问题是,可执行文件必须位于服务器上JSP本地的目录中。我的公司有这个网站的3或4个克隆,我不能将可执行文件放在某个绝对文件路径中 - 它必须是相对的(因为它将由其他团队一起将JSP页面一起发送到其他处理器)。

我知道JSP能够运行具有相对路径的可执行文件,因为我可以运行它:

<form action="./my_executable_that_generates_a_dynamic_page">

但是,我需要从servlet运行以使用javascript填充dropbox。

<%= new File("./exec_produce_dropdown_list").getPath() %>

上面的代码片段给了我一个不同的目录。

我也尝试过:

<%= new File(new File(request.getServletContext().getRealPath(request.getRequestURI())).getParent().replace('\\', '/'), "exec_produce_dropdown_list"); %>

这是非常接近的,除非URI中的虚拟路径与文件系统(我们拥有的)不对应,它不会指向正确的目录。

我有一个简单的方法来运行可执行文件吗? 我还想补充一点,我没有web.xml可供使用。

1 个答案:

答案 0 :(得分:2)

找到我的答案:

request.getRealPath(request.getServletPath())

应该给我/path/in/filesystem/to/file.jsp