关于servlet的ServletContext,看了许多文章,还没理解它的含义,高手能不能通俗的讲解一下呢?不太理解它的功用,及在servlet编程中所处作用
2楼glassprogrammer()回复于2003-01-23 16:33:59得分20
Context,上下文的意思
怎么理解呢? j2sdkee的javadoc中说到:Defines a set of methods that a servlet uses to communicate with its servlet container.
也就是说,如果你的Servlet需要与自己的运行环境(Container)进行交互时,就需要使用ServletContext,比如,从运行环境得到Servlet的配置信息(getInitParameter方法),得到环境提供的资源(getResource, getResourceAsStream等),通过Servlet Container(也就是应用服务器)记录运行日志(log方法)等等.
Top
3楼totodo(土豆仙)回复于2003-01-23 17:40:15得分10
Servlet的所产生的Java代码和类文件被储存在缺省为TOMCAT_HOME/work的一个特定位置,这个目录在Context元素中被指定。在很多的实例之中,如果一个JSP页面没有像预期的那样进行运作或是如果一个具有行编号的stack trace被显示,你就可以查看所产生的代码来帮助确定所出现的问题。
Top
4楼doodoofish(嘟嘟鱼)回复于2003-01-23 18:25:47得分20
ServletContext翻译成中文是"Servlet上下文"﹐不好理解吧?
其实说简单了就是Servlet运行的环境﹐这个环境里的信息是给所有Servlet共享的。
所有Servlet都可以通过getServletContext().getAttribute()和getServletcontext().setAttribute()来操作这些信息。
你可以把保存在ServletContext里的信息理解为"全局变量"﹐而把ServeletContext本身理解为存放这些全局变量的一个"包"。
所以﹐有些信息如果只有一个Servlet会用到﹐就没有必要放在ServletContext里﹔相反信息会被好几个Servlet用到﹐就需要把这个信息存放在ServletContext这个存放"全局变量"的"包"里面﹐以便让其他Servlet共享到这些"全局变量"。
另外﹐如果你知道JSP﹐就会发现"ServletContext"在JSP里变成了"application"了。其实叫做application更贴切﹐因为ServletContext里的信息(全局变量)对于整个web app里的Servlet来说都是共享的﹐因此这些信息实际上是属于application级别的(application-level)。
想象你编写的传统C程序﹐有局部变量(函数级别的)和全局变量(application级别的)﹐套过来想就能够理解ServletContext是干什么的了---存放相对于Servlet来说的全局变量﹐并提供了让Servlet交互的桥梁。
那么什么对象存放了相对于Servlet来说的"局部"变量呢?你自己想想看吧。
我也刚开始学JSP。共勉!