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")。