2

我在. index.jsp_ 作为欢迎页面访问应用程序的根目录时也会显示它。它有三个初始化参数。/indexweb.xml

问题是我可以从 JSP 代码中访问,config.getInitParameter()如果路径已满[host:port]/[appName]/index,则可以正常访问参数。
如果我尝试导航到应用程序根[host:port]/[appName]/欢迎页面,则会显示但无法访问初始化参数。config.getInitParameter()方法返回 null。

如果我想获取 servlet 初始化参数,如何在 web.xml 中正确配置欢迎页面?

4

2 回答 2

2

通常在 Java 中,如果您想使用 / 来访问 Java EE 上下文,您可以:

  1. 将其安装在 ROOT 上下文中。
  2. 使用反向代理(如 nginx)。

第二种方法是最常见的解决方案。在这种情况下,请求转到浏览器 -> 反向代理/负载均衡器 -> 一个或多个应用程序服务器。

这有几个优点。

  1. 您可以在反向代理上处理 SSL 握手。
  2. 您的应用程序服务器可以尽可能快地将内容传送到反向代理(通常比浏览器更快),因此它不会长时间占用连接(勺子喂食)。
  3. 即使 Java EE 容器没有运行,您也可以显示有意义的错误页面。
  4. 为每个上下文提供不同的域或子域是微不足道的。
于 2014-01-27T15:12:02.187 回答
2

您是否将 index.jsp 定义为 web.xml 中的“欢迎文件”?听起来容器正在执行重定向。将 index.jsp 定义为欢迎文件应该可以解决这个问题。

希望有帮助。

于 2014-01-27T15:00:38.417 回答