[ajuda] Mapeamento de servlets

7 respostas
R

Salve galera imensa, to começando com java e estou com um problema para rodar uma pequena aplicação web, criei um projeto chamado AgendaWebHome, inicialmente este projeto tem que ter um formulario html que envia informacoes para um servlet chamado ControlServlet, aí que está o problema...

1° eu (teoricamente) mapeei o meu servlet corretamente la no web.xml, segue abaixo o código dele.

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name> AgendaWebHome</display-name>
	<servlet>
	
		<servlet-name>ControlServlet</servlet-name>
		<servlet-class>/AgendaWebHome.ControlServlet</servlet-class>
		
	</servlet>
	<servlet-mapping>
		<servlet-name>ControlServlet</servlet-name>
		<url-pattern>control.do</url-pattern>
		
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>Index.html</welcome-file>
		<welcome-file>Index.htm</welcome-file>
		<welcome-file>Default.jsp</welcome-file>
	</welcome-file-list>
</web-app>

2° no formulario html eu fiz uma minuscula funcao javascript para validar se nenhum dos campos está vazio, só que esta funcao nao funciona, alguem tem uma ideia do que fiz errado ?

<body>

<form method = 'POST' name = 'formLogin' onsubmit = "return validarCampos()" action = "control.do">

voce<input type = "text" size = "20" name = "login" id = "login"><br>
Senha <input type = "password" size = "20" name = "senha" id = "senha"><br>
<input type = "SUBMIT" name = "mandar" OnClick = "validarCampos()">

</form>

<script language="JavaScript">
function validarCampos()
{

var valorLogin = document.formLogin.login.value()
var valorSenha = document.formLogin.login.value()
if (valorLogin==""){
    alert("É necessário o preenchimento do campo Login");
     return false
    }
if (valorSenha==""){
    alert("É necessário o preenchimento do campo Senha");
     return false
    }

else return true;

}

</script>
</body>

alguem pode me ajudar ?

7 Respostas

skalinichenko

Olhando, aparentemente não está errado...
Mas eu faria da seguinte (e quase idêntica forma), dessa maneira:

<script language="JavaScript">  
 function validarCampos()  
 {  
   
 var valorLogin = document.formLogin.login.value //"value", é uma propriedade; não precisa de "()"
 var valorSenha = document.formLogin.login.value //Idem
 if (valorLogin==""){  
     alert("É necessário o preenchimento do campo Login");  
     document.formLogin.login.focus();
      return false;  
     }  
 if (valorSenha==""){  
     alert("É necessário o preenchimento do campo Senha");  
     document.formLogin.senha.focus();
      return false;  
     }  
   
 else 
      return true;  
 }  
   
 </script>

Vê aí, se funciona!
A dúvida era de "mapeamento" ou de "JavaScript"?
Flw!

ramonchiara

Talvez teu problema esteja na “/” que está sobrando no nome da classe…

ControlServlet [i][b][color=red]/[/color][/b][/i]AgendaWebHome.ControlServlet
Thiago_Luis
RMarcel:
2° no formulario html eu fiz uma minuscula funcao javascript para validar se nenhum dos campos está vazio, só que esta funcao nao funciona, alguem tem uma ideia do que fiz errado ?
<body>

<form method = 'POST' name = 'formLogin' onsubmit = "return validarCampos()" action = "control.do">

voce<input type = "text" size = "20" name = "login" id = "login"><br>
Senha <input type = "password" size = "20" name = "senha" id = "senha"><br>
<input type = "SUBMIT" name = "mandar" OnClick = "validarCampos()">

</form>

<script language="JavaScript">
function validarCampos()
{

var valorLogin = document.formLogin.login.value()
var valorSenha = document.formLogin.login.value()
if (valorLogin==""){
    alert("É necessário o preenchimento do campo Login");
     return false
    }
if (valorSenha==""){
    alert("É necessário o preenchimento do campo Senha");
     return false
    }

else return true;

}

</script>
</body>

alguem pode me ajudar ?


Fala cara, blza?

Aqui:
var valorLogin = document.formLogin.login.value()
var valorSenha = document.formLogin.login.value()
Vc resgatou duas vezes o campo login, e não resgatou o campo senha.

Abraço

R

entao skalinichenko a duvida era de mapeamento e de javascript… aproveitei o topico pra ja fazer as duas perguntas hehehe

engraçado… eu tirei os parenteses do value, e a função js funcionou numa boa… mas ainda ficou com aquele sublinhado em vermelho que aparece quando a gente ta fazendo alguma coisa esquisita (estou usando o eclipse)…

já na questao do mapeamento, eu tirei a barra nao funcionou do mesmo jeito… na verdade ja fucei bastante por conta propria no mapeamento mas nao consegui fazer ele funcionar… fica dando erro 404 dizendo que nao encontrou o “/Control.do” ( que é o nome que mapeei para minha servlet)…

vcs tem outra ideia do que fazer ?

Thiago_Luis
ControlServlet /AgendaWebHome.ControlServlet ControlServlet control.do
Não seria assim:
<servlet>   
       
        <servlet-name>ControlServlet</servlet-name>   
        <servlet-class>AgendaWebHome.ControlServlet</servlet-class>   
           
    </servlet>   
    <servlet-mapping>   
        <servlet-name>ControlServlet</servlet-name>   
        <url-pattern>/control.do</url-pattern>   
           
    </servlet-mapping>
Com o barra no ao invés do ???
skalinichenko

Eu concordo!
No , segue o padrão pacote.classe e não necessita de uma “/”.
Flw!

R

valeu galera… descobri outro erro, mas ja consegui corrigir

lá no servlet class eu tinha colocado o nome_da_aplicação.classe, e não pacote.classe como vcs falaram

agora ta direcionando para a servlet…

valeuss !

Criado 4 de junho de 2009
Ultima resposta 8 de jun. de 2009
Respostas 7
Participantes 4