req.getsession().getservletcontext()和getservletcontextt()之间的



我已经看到,您也可以直接调用getservletcontext(),也可以像这个req.getsession().getservletcontext().一样

两者之间的区别是什么?我应该使用哪一个?有没有什么场景我应该使用其中一个而不是另一个?

顺便说一下,我正在使用web模块2.5

两个之间的区别是什么

两者没有区别,它们是一体的。

只有当代码位于扩展HttpServlet的类中时,才可以直接调用方法getServletContext()。这是因为HttpServlet基类定义了这个方法(实际上是在HttpServlet扩展的GenericServlet类中)。

req.getSession().getServlet上下文()is same as the one returned above.HttpSessioncontains a reference to theServlet上下文返回的ServletContext,此会话属于。

我应该使用哪一个?有没有什么场景我应该使用其中一个而不是另一个?

只要代码在servlet类中,就可以使用任何东西,因为两者都可以调用。

假设(假设)您从servlet调用自定义类中的一个方法,并将会话对象传递给它以处理会话中的一些数据。这个自定义类不扩展servlet。您需要在这个自定义类中引用ServletContext。由于您有对会话的引用,因此可以使用方法session.getServletContext()访问Servlet上下文。

希望这是清楚的。

Session变量仅保存在一个浏览器中,Context所有浏览器都可以在一个会话中使用。

因此,如果用户只使用一个浏览器(在大多数情况下是这样),它们之间没有区别,但如果您想在一个会话中使用不同的浏览器,最好使用上下文

最新更新