Rajesh Kumar wrote:

> Hello all,
> Please go through this code to understand the problem
>
> public class testServlet extends HttpServlet{
>
> private String UserName=null;
>
> public void init()....{
> ...}
> public void doPost(..)..{
> {
> PrintWriter out=res.getWriter();
> out.println("First:"+UserName);
> ..
> ..
> UserName="somevalue";
> out.println("Second:"+UserName);
> }
> }
>
> When I run this Servlet  ,output->First: null Second:somevalue
> Run this Servlet in another browser(second time), I got the output as ,
> First:somevalue Second:somevalue.
> How the old value is retained.Each time the servlet is called,it is
> initiated and so the First value should be null.
> Kindly let me know the reason for this behaviour.
>
> This I avoided by declaring the UserName inside the doPost method.
>
> Thanks,
>  Rajesh

[...]


Hi :-)  I am not sure, but from Servlet spec2.2 and several emails from
Servelt-List:

#  UserName is a private instance field in your Servlet class, so the line
    *private String UserName=null;* will only work when Servlet container makes

    a new instance of your Servlet class.

#  if we have n Servlet definitions, then normally, we will have n instances of
our
    Servlet class. Servlet container will use these instances to make threads
for
    client accessing, and after this client accessing has been responsed,
normally
    this instance will not be *destroyed* -> it can be used in next time. so
now your
    UserName is also there, and still refrences to a String whose value is
"somevalue"

#  Servlet container will make a new thread from one of these  instances for
every
   client accessing,  if it happens that the two threads for your two client
accessings
   are from the same instance, then perhaps we will get the result mentioned in
your
   email.   hope my guessing is right :-)


Bo
Dec.01, 2000

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to