与这个问题相关的是,为静态内容提供服务的默认servlet的想法是跨servlet容器的标准(即使是事实上的标准)还是它的使用限制了部署到tomcat/jetty?
例如,1显示了获取默认调度程序的方法:
final RequestDispatcher rd = getServletContext().getNamedDispatcher("default");
从快速搜索看来,这也适用于码头。这种技术在获得默认servlet方面的作用有多大?对于具有默认servlet的servlet容器,它总是静态内容servlet吗?
3条答案
按热度按时间kzmpq1sx1#
它不是一个标准,但是没有它appservers就不能提供静态内容。这很关键。
[编辑]我看到你以更清晰的方式编辑和阐述了你的问题:
例如,[1]显示了获取默认dispatcher的方法:
final requestdispatcher rd=getservletcontext().getnameddispatcher(“默认值”);
从快速搜索看来,这也适用于码头。这种技术在获得默认servlet方面的作用有多大?对于具有默认servlet的servlet容器,它总是静态内容servlet吗?
在这种情况下,它可能是一个事实上的标准,但我不会太依赖它,而且肯定不会针对实现特定的细节甚至事实上的标准编写代码。扪心自问:将请求发送到defaultservlet有什么意义/价值?没错,没什么。
ztigrdn82#
servlet不需要默认的servlet。但是,如果已定义名称,则名称必须为“default”。无法想象没有默认servlet的容器。所以你可以假设它是标准的。
见srv.11.1节,
4.如果前三个规则都没有导致servlet匹配,那么容器将尝试提供适合所请求资源的内容。如果为应用程序定义了“默认”servlet,则将使用它。
ubbxdtey3#
只要servlet容器标准是ServletAPI,您就可以看到没有defaultservlet这样的东西。最广泛使用的servlet容器都有一些默认值,可以开箱即用。但实现某个接口或抽象类以便容器可以运行并不是“标准”要求即使没有任何servlet,容器也可以运行。