E aí galera beleza?
Estou tendo o seguinte problema:
[code]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>ServletInsere</servlet-name>
<servlet-class>acesso.ServletInsere</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletInsere</servlet-name>
<url-pattern>/servlet/ServletInsere</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
</web-app>[/code]
Aparentemente no meu web.xml não ha nada de errado. Pelo que sei não há mas quando envio o link:
<form action="servlet/ServletInsere" method=post> [/code] ou [code]<form action="/servlet/ServletInsere" method=post>
O tomcat dá o seguinte aviso:
The requested resource (/locadora/publico/servlet/ServletInsere) is not available.
No resin dá o mesmo erro, ou seja, o conteiner não encontra meu servlet. Mas coloquei ele no lugar certo:
WEB-INF/classes/acesso/ServletInsere.class
Estou usando o tomcat 5.0.25, 4.1.30, resin 3 e nos logs deles não diz nada. Alguém que já tenha passado por isso ou tenha visto algum erro meu até aqui pode me ajudar?
Dede já agradeço!!
Bom, vc mapeou ele como ServletInsere, entao nao precisa passar o /servlet/ServletInsere, se vc usar soh ServletInsere deve funcionar!
acho que éisso ai!
=) cya! =)
vc pode tentar colocar ‘…/’ antes do endereço. que faz ele procurar um diretorio acima. Ex:
se ele estiver procurando o servlet em :
/locadora/publico/servlet/ServletInsere
e na era pra ser:
/locadora/servlet/ServletInsere
coloque o formulario assim:
<form action="../servlet/ServletInsere" method='post'>
vc tambem pode colocar:
action="../../servlet/ServletInsere"
que faz ele voltar dois niveis.
blz 
E aí galera beleza?
Deu certo coloquei assim:
../servlet/ServletInsere
mas, ficou uma sombra de dúvida:
Se eu mapiei o servlet para
/servlet/ServletInsere
No action não tenho que colocar
action="/servlet/ServletInsere"
,
pois foi assim que mapiei.
Desculpe minha insistência, é que tenho que entender o que está acontecendo senão enlouqueço.
Obrigado!

seguite…
quando vc poe apenas action="/servlet/ServletInsere" . vc esta utilizando um um endereço relativo.
se vc colocar action=“http://localhost:8080/locadora/servlet/ServletInsere” entao vc estara utilizando um endereço absoluto.
por isso…
supondo q vc esteja no endereço:
http://localhost:8080/locadora/publico/formulario.html
se vc colocar nessa pagina um link com um endereço relativo ele vai para:
http://localhost:8080/locadora/publico/+<endereço_relativo>
quando vc colocou o mapeamento para: /servlet/ServeltIndex entao para executar esse servlet o url tem que ser:
http://localhost:8080/locadora/servlet/ServletIndex
ai vc poe em uma pagina ou uma url absoluta (o q nao eh legal) ou vc poe uma url relativa correspondente.
deu pra entender :?:
blz agora 
E aí beleza?
Estive pensando e por favor me corrijam se eu estiver errado:
Um servlet só é executado dentro de um contexto.
Quando ver a barra de endereços do internet explorer posso por exemplo identificar o contexto da seguinte forma:
http://localhost:8080/nomeaplicacao/
onde nomeaplicacao é o nome do contexto. Todo servlet é executado dentro do contexto. portanto não é possível chamá-lo da seguinte forma:
http://localhost:8080/nomedoservlet
pois assim ele estaria acima do contexto. Então a forma correta de chamá-lo é:
http://localhost:8080/nomeaplicacao/nomedoservlet
pois assim o chamaria na raiz do contexto.
Para que isso seja possível tenho que referenciá-lo no web.xml da seguinte forma:
<servlet-mapping>/nomedoservlet</servlet-mapping>
e no form:
action = …/nomedoservlet
Desde já agradeço.

oi cara,
quase tudo certo…
so o action q ta errado…
nao eh obrigatorio os dois pontos (’…’).
os dois pontos so indica pra o endereço voltar um diretorio acima…
Ex: se vc criar um formulario (pagina.html) em um diretorio chamado ‘modulo’ dentro da pasta da aplicação. então o endereço fica:
http://localhost:8080/nomeaplicacao/modulo/pagina.html
nessa pagina html se voce colocar o action assim:
action = /servlet/ServletInsere
entao quando der um submit os dados irao para o endereço:
http://localhost:8080/nomeaplicacao/modulo/servlet/ServletInsere
mas se vc colocar o action assim (com os dois pontos na frente):
action = …/servlet/ServletInsere
entao quando der um submit os dados irao para o endereço:
http://localhost:8080/nomeaplicacao/servlet/ServletInsere
o endereço vai ‘subir’ do diretorio modulo para o diretorio da aplicação

E aí beleza?
Agora entendi, obrigado pela ajuda!!!
:okok: :okok: :okok: :okok: :okok: :okok: :okok: