关于Servlet编程中的getServletContext方法?

发布于 2022-09-02 01:39:50 字数 407 浏览 7 评论 0

在源码中,getServletContext()方法的代码如下:

public ServletContext getServletContext() {
    return getServletConfig().getServletContext();
    }

那么,其中getServletConfig()是得到ServletConfig,但是ServletConfig是一个接口,且其中并没有ServletContext啊,就算是ServletConfig的实现类GenericServlet中,也没有ServletContext啊,那这个ServletContext是怎么取出来的呢?请问是不是inti(ServletConfig config)方法接收到的传自Tomcat服务器的那个config其实是一个特殊的实现类?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一桥轻雨一伞开 2022-09-09 01:39:50

Sevlet是Java EE中的一套标准,也就是一套接口,具体的实现是由各个厂商来实现,例如Tomcat、Jetty、Resin等。类似的比如JDBC也是,具体实现由各个数据库厂商的驱动来实现。

遇见了你 2022-09-09 01:39:50

个人观点:
ServletContext可以理解成应用程序上下文。
我们都知道tomcat启动的时候会去加载web.xml

tomcat启动web.xml配置文件加载流程(具体不细说,可以看源码):
1.StandardContext.java⇒startInternal
2.LifecycleBase.java⇒fireLifecycleEvent
3.LifecycleSupport.java⇒fireLifecycleEvent
4.ContextConfig.java⇒lifecycleEvent⇒configureStart

接下来看ServletContext接口类的实现类ApplicationContext下面的getContext方法,从这个方法里面返回的就是启动时加载的标准上下文。

这两天也刚好在看这个问题,希望可以多讨论讨论啊。^^

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文