Problemas com o HttpServletRequest.forward(request, response)

organização dos diretorios do proj:
----------HFN
-------------WEB-INF/src
---------------.com.bancoClasses
---------------.com.hfnClasses
------------------>.class
------------------>servlet(GerenteServlet)
-------------work
-------------arquivos
--------------.imagens
----------------
.jpg
-----------------.parametros
-------------WEB-INF
----------------.lib
------------------web.xml
------------.jsp
------------
.html
------------index.html
------------indexCenter.jsp
------------indexCima.htm

web.xml do proj:

    <servlet>
      <servlet-name>GerenteServlet</servlet-name>
      <servlet-class>com.hfnClasses.GerenteServlet</servlet-class>
</servlet>

    <servlet-mapping>
      <servlet-name>GerenteServlet</servlet-name>
      <url-pattern>/GerenteServlet</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
      <welcome-file>index.html</welcome-file>
    </welcome-file-list>

web.xml do tomcat:
.
.
.

invoker
/servlet/*

.
.
.

  • starto a pagina normalamente, do um submit, entra na servlet normalmente (action form = “servlet/GerenteServlet”)
  • a servlet faz o q tem q fazer
  • quando tento dar o forward de volta : request.getRequestDispatcher(“indexCenter.jsp”).forward(request, response);
    o tomcat não localiza, da o erro: The requested resource (/HFN/servlet/indexCenter.jsp) is not available.

Olhando para a url que é apresentada no erro, vejo que tem um “/servlet”, e ai esta o motivo da não localização.

-mudei as urls para …/HFN/…/urlAntiga
-ate funciona, mas na primeira vez q abro a pagina…as imagens não aparecem.
-voltei como era antes
-rezolvi mudar o web.xml do tomcat para :

    .
    .
    .
<servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
    .
    .
    .
  • mas desta vez, quando do o submit, a servlet não é localizada.

alguem poderia me ajudar?
desde ja agradecido.

Olá
tente assim:

request.getRequestDispatcher("/indexCenter.jsp").forward(request, response); 

ou dê um dispatcher pelo ServletContext

servletContext.getRequestDispatcher("/indexCenter.jsp").forward(request, response); 

não funcionou,
da o msm erro quando coloco …/HFN/…/indexCenter.jsp, so q ainda pior:

-abro a pagina

-do o submit (action form = “servlet/GerentServlet”)

-chega na servlet sem problemas

-faço o q vc aconcelhou
ServletContext().getRequestDispatcher("/indexCenter.jsp").forward(request, response); ou com o request msm

-ele volta para a pagina sem as imagens, e se eu do novamente o submmit, o tomcat ja não encontra a servlet
erro: The requested resource (/HFN/servlet/servlet/GerenteServlet) is not available.

mas valeu a tentativa. Obrigado

hun véi, eu uso isso aqui sem problema, olha direito seu código e tente entender a estrutura de pastas, caminhos relativos, absolutos :wink:

como esta configurado o invoker no web.xml no seu tomcat?
Queria comparar…

vlw

[quote=heleno_fn]como esta configurado o invoker no web.xml no seu tomcat?
Queria comparar…

vlw[/quote]
a url do meu está mapeada para *.page

 <servlet-mapping>
    <servlet-name>Controller</servlet-name>
    <url-pattern>*.page</url-pattern>
 </servlet-mapping> 

Eu gotaria de saber a do tomcat, não a do projeto. tipo, a do meu ta:

invoker org.apache.catalina.servlets.InvokerServlet . . . invoker /servlet/* . . .

Eu devo ta ja enchendo né??hehehe…
mas obrigado pela paciencia

cara, esqueça essa do tomcat, vc não deve mecher nela.
Ele cria pra q depois ‘deployada’ a aplicaçao, possa gerenciar cache, log, etc… então no seu:
action form = “servlet/GerenteServlet”
vc deve colocar a servlet de sua aplicacao
action form = “/GerenteServlet”

eu insisti no tomcat, pois eu sei q se no invoker no web.xml do toncat ta para : /servlet/, no meu form action deve estar servlet/nomeservlet
se ta para /xx/
, no meu form action deve estar xx/nomeservlet

por isso que eu queria saber como esta o seu, pois o seu funciona e o meu não, eu queria saber se o seu ta como /servlet/*.

eu falo isso tb, pois eu lembro muito vagamente(na epoca q eu estudava isso…hehe)que para resolver esse tipo de problema bastava mudar o /servlet/* p/ /*, ja tentei, mas por algum motivo não funcionou…não sei se era so isso …ou tinha q mudar + coisas.

obrigado pela atenção

alguem poderia me ajudar?
desde ja agradecido