File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Servlets and the fly likes Servlets and ServletContext Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Servlets and ServletContext" Watch "Servlets and ServletContext" New topic

Servlets and ServletContext

mike markey

Joined: Jun 14, 2001
Posts: 2
I am building some servlets and ran into a problem. The problem concerns ServletContext objects and
the getContext method.
The idea is pretty simple and I've seen numerous examples on the topic. I have a servlet that is http://localhost/NASApp/Main/MainServlet.
I have a second servlet that is /localhost/NASApp/Other/OtherServlet. I would like the
MainServlet to forward to the OtherServlet. To do this, I am attempting the following in MainServlet:
RequestDispatcher dispatcher;
ServletContext sc = getServletContext();
dispatcher = sc.getRequestDispatcher("/OtherServlet");
dispatcher.forward(request, response);
This appears to agree with documentation and examples that I have found, but I get a 404 error. I have
tried "/Other", "/NASApp/Other", and "/localhost/NASApp/Other" in the getContext call. The OtherServlet
works fine when you access it directly via typing the URL into the browser, so I know it works. I am
using iPlanet App Server 6.0 and iPlanet WebServer 4.1sp5. I see that the webserver specifies some
things that need to be done to get servlets to work, but I'm not using the webserver for the servlets.
Rather, I am using iAS to deploy my .ear files for me. I haven't found anything in the iAS docs that
point to extra steps that need to be done. Anybody have experience in this area? Your help is greatly
Zoe Peng
Ranch Hand

Joined: Nov 27, 2000
Posts: 112
ServletContext sc = getServletContext();
I am not sure, but I always see ppl use this when they want to do sth for entire application and access different application level attributes.
public void contextInitialized(ServletContextEvent sce)
ServletContext context = sce.getServletContext();
blas blash
and configure ur web.xml file, too
mike markey

Joined: Jun 14, 2001
Posts: 2
Actually, I figured it out. I misunderstood the way the sc.getContext("/localhost/NASApp/Other") call worked. I simply needed to assign this call to a new ServletContext such as:
ServletContext newSC = sc.getContext("blahblah");
dispatcher = newSC.getRequestDispatcher("/OtherServlet");
This fixed the problem. Thanks for the reply, though, as it has shown me how to do some other things that I wanted to do.
I agree. Here's the link:
subject: Servlets and ServletContext
It's not a secret anymore!