这是我提出这个问题的第二次尝试 - 这次我会提供更多详细信息,以帮助我们获得明智的答案。
我在这里尝试真正做的是填充一个下拉菜单,其中的数据是从应该在页面加载上运行的可执行文件动态生成的。问题是,可执行文件必须位于服务器上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可供使用。
答案 0 :(得分:2)
找到我的答案:
request.getRealPath(request.getServletPath())
应该给我/path/in/filesystem/to/file.jsp