I want to save context in servlet,for example,I read data from a file "error.txt",and
form a hash table,and put it into the context in servlet,then I deploy it with Tomcat
and not stop Tomcat in order to making Tomcat running all the times.In servlet,I get
data from hash table,it is ok. Then I only modified data in the file "error.txt" and
not modify my program,and I visit servlet again with IE to get data again from hash
table,it should be original data,but it is new data.I don't know why? Context in
servlet should be kept in Web,but why my program can't keep it. My program is follows:
//PreReadError.java
public class PreReadError
{
Hashtable table=new Hashtable();
public PreReadError()
{
String text;
BufferedReader input;
String str1,str2;
int locate;
try
{
InputStream is = this.getClass().getResourceAsStream("error.txt");
input = new BufferedReader(new InputStreamReader(is));
/*error.txt format,such as:
Error1:Not found
Error2:Redirect
Error3:Bye*/
while((text=input.readLine())!=null)
{
locate=text.indexOf(":");
str1=text.substring(0,locate);
str2=text.substring(locate+1,text.length());
table.put(str1,str2);
}
input.close();
}
catch(IOException e)
{ e.printStackTrace();
}
//If success,return string ,or return null
public String getTable(String str)
{
String result=(String) table.get(str);
return result;
}
}
//GetUserIdentity.java
public class GetUserIdentity extends HttpServlet
{
String str;
String errorfile;
ServletContext context;
PreReadError readfile;
public void init() throws ServletException
{
context=getServletContext();
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
if(context.getAttribute("errorfile")==null)
{
readfile=new PreReadError();
context.setAttribute("errorfile",readfile);
}
str=(String)(((PreReadError)context.getAttribute("errorfile")).getTable("Error1"));
System.out.println(str);
}
}
file "error.txt" likes:
Error1:Not found
Error2:Redirect
Error3:Bye
I run it,it show:
Not found
Then I modify "error.txt",likes:
Error1:Bad Request
Error2:Redirect
Error3:Bye
And I run it,it should show:
Not found
But it show:
Bad Request
I want to know why? The second time, context.getAttribute("errorfile") should not
null,it should not execute statements:
readfile=new PreReadError();
context.setAttribute("errorfile",readfile);
I want to read data from error.txt once in the servlet,but it read data every time.How
to correct it?
Any idea will be appreciated!
Thanks!!!
Edward
___________________________________________________________________________
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