Showing posts with label diff between ServletConfig and ServletContext. Show all posts
Showing posts with label diff between ServletConfig and ServletContext. Show all posts

Tuesday, April 27, 2010

Difference between ServletConfig and ServletContext

* Signature: public interface ServletConfig
ServletConfig is implemented by the servlet container to initialize a single servlet using init(). That is, you can pass initialization parameters to the servlet using the web.xml deployment descriptor. For understanding, this is similar to a constructor in a java class.

Example code:
<-servlet>
<-servlet-name>ServletConfigTest<-/servlet-name>
<-servlet-class>com.javapapers.ServletConfigTest<-/servlet-class>
<-init-param>
<-param-name>topic<-/param-name>
<-param-value>Difference between ServletConfig and ServletContext<-/param-value>
<-/init-param>
<-/servlet>

* Signature: public interface ServletContext
ServletContext is implemented by the servlet container for all servlet to communicate with its servlet container, for example, to get the MIME type of a file, to get dispatch requests, or to write to a log file. That is to get detail about its execution environment. It is applicable only within a single Java Virtual Machine. If a web applicationa is distributed between multiple JVM this will not work. For understanding, this is like a application global variable mechanism for a single web application deployed in only one JVM.

The ServletContext object is contained within the ServletConfig object. That is, the ServletContext can be accessed using the ServletConfig object within a servlet. You can specify param-value pairs for ServletContext object in tags in web.xml file.

Example code:
<-context-param>
<-param-name>globalVariable<-/param-name>
<-param-value>javapapers.com<-/param-value>
<-/context-param>