关于java:是否可以基于请求逐个设置J2EE Web应用程序的基本目录?

Possible to set base directory for a J2EE webapp on a request-by-request basis?

我们有一个Java / J2EE Web应用程序,其中不同的用户应该看到不同的页面。我们已经使用户登录,将userId保留在会话中,然后让他们使用webapp。

我想做的是为每个用户提供一个单独的目录,他们可以在其中查看自己的文件和网页。理想情况下,我将能够创建一个显示用户ID的Servlet过滤器,并仅针对该请求设置Web应用程序的基本目录。基本目录必须存在于/ webapps目录之外。

有什么方法可以使用标准的servlet东西吗?

如果没有,是否可以使用servlet容器特定的代码?我们可以使用Jetty或Tomcat,甚至可以使用Glassfish。


我认为您需要决定要做什么:

  • 如果仅希望用户能够登录并查看文件和网页,则无需考虑J2EE,只需配置Apache Web服务器即可。它可以进行安全登录,浏览用户的主目录等。

  • 如果您确实想走J2EE路线,则必须编写一个servlet来读出用户的凭据,然后使用java.io.File API找出该目录的内容。要显示网页,请在要显示的特定文件上打开InputStream,然后将其复制到Servlet的OutputStream。不要忘记在HttpServletResponse上正确设置内容类型(例如,网页的" text / html")。