Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

djalma_bina

Servlet com Formulario POST.

Recommended Posts

ola pessoal, sou iniciante com desenvolvimento web em Java. Estou usando um servidor web Tomcat 6.1.0 ,remoto e compartilhado, e

minha URL é -- http://djalmabina.hostsyst.com.

Acontece que montei uma aplicação que envia dados de um formulário POST para um servlet , mas o servidor não está localizando minha classe para executa-la.

Meu web.xml está assim :

 

<?xml version="1.0" encoding="ISO-8859-1"?><!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 xmlns="http://java.sun.com/xml/ns/j2ee"'>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" version="2.4"> <display-name>Example Applications</display-name> <servlet> <servlet-name>ShowParameters</servlet-name> <servlet-class>djalma.ShowParameters</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShowParameters</servlet-name> <url-pattern>/djalma/*</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>PostForm.html</welcome-file> </welcome-file-list> </web-app>

meu Postform.html é este :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>A Sample FORM using POST</TITLE> </HEAD> <BODY BGCOLOR="#FDF5E6"> <H1 ALIGN="CENTER">A Sample FORM using POST</H1> <FORM ACTION="djalma/ShowParameters" METHOD="POST"> Item Number: <INPUT TYPE="TEXT" NAME="itemNum"><BR> Quantity: <INPUT TYPE="TEXT" NAME="quantity"><BR> Price Each: <INPUT TYPE="TEXT" NAME="price" VALUE="$"><BR> <HR> First Name: <INPUT TYPE="TEXT" NAME="firstName"><BR> Last Name: <INPUT TYPE="TEXT" NAME="lastName"><BR> Middle Initial: <INPUT TYPE="TEXT" NAME="initial"><BR> Shipping Address: <TEXTAREA NAME="address" ROWS=3 COLS=40></TEXTAREA><BR> Credit Card:<BR> <INPUT TYPE="RADIO" NAME="cardType" VALUE="Visa">Visa<BR> <INPUT TYPE="RADIO" NAME="cardType" VALUE="Master Card">Master Card<BR> <INPUT TYPE="RADIO" NAME="cardType" VALUE="Amex">American Express<BR> <INPUT TYPE="RADIO" NAME="cardType" VALUE="Discover">Discover<BR> <INPUT TYPE="RADIO" NAME="cardType" VALUE="Java SmartCard">Java SmartCard<BR> Credit Card Number: <INPUT TYPE="PASSWORD" NAME="cardNum"><BR> Repeat Credit Card Number: <INPUT TYPE="PASSWORD" NAME="cardNum"><BR><BR> <CENTER> <INPUT TYPE="SUBMIT" VALUE="Submit Order"> </CENTER> </FORM> </BODY> </HTML>

No entanto quando chamo este endereço para mostrar o servlet =

http://djalmabina.hostsyst.com/form/PostForm.html

e submeto os dados , o servidor retorna o erro clássico 404 do tomcat :

Error 404!

/form/djalma/ShowParameters

File Not Found!

 

O diretório root do meu host é /htdocs e não /webapps.

 

donovan.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

djalma, seu provedor faz a reinicialização do contexto do website todo dia?

 

Você subiu os arquivos a quanto tempo no servidor?

 

 

Flwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

djalma, seu provedor faz a reinicialização do contexto do website todo dia?

 

Você subiu os arquivos a quanto tempo no servidor?

 

 

Flwww

Quanto aos arquivos estão há mais de uma semana, no entanto não estou sabendo se eles reiniciam o contexto todo dia. Já entrei em contato com o suporte e ele me disse apenas para olhar o FAQ mas eu não entendi muito bem nesta página :

 

Hostsyst

 

http://hostsyst.com/home.jsp?pk=faq

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, pelo que vi no faq eles utilizam a chamada do servlet como sendo assim:

 

http://djalmabina.hostsyst.com/servlet/djalma/ShowParameters

 

Mas espere a resposta sobre a reinicialização do contexto.

 

Espero sua resposta aqui

 

Até mais, grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, pelo que vi no faq eles utilizam a chamada do servlet como sendo assim:

 

http://djalmabina.hostsyst.com/servlet/djalma/ShowParameters

 

Mas espere a resposta sobre a reinicialização do contexto.

 

Espero sua resposta aqui

 

Até mais, grande abraço.

Ola sublyer ! o suporte não me informa nada mais além do que está no FAQ. Quanto ao PATH absoluto que você referiu acima, eu coloquei-o no formulário POST assim :

<FORM ACTION="http://djalmabina.hostsyst.com/form/WEB-INF/classes/djalma/ShowParameters" METHOD="POST"> e também repeti isso na tag

<url-pattern>http://djalmabina.hostsyst.com/form/WEB-INF/classes/djalma/*</url-pattern> do web.xml. Então quando envio os dados para o servlet, o servidor acha o caminho mas faz download da classe num formato doc , tipo assim : ShowParameters4c1d8ce. Não estou entendendo porque este procedimento, parece que eles não querem que se execute a aplicação no browser !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, se você colocar o caminho do arquivo não vai funcionar mesmo.

 

Exemplicando melhor, a chamda da sua classe Servlet é feito através de um mapeamento no web.xml, em seu computador local o servlet funciona?

 

Flww, grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, se você colocar o caminho do arquivo não vai funcionar mesmo.

 

Exemplicando melhor, a chamda da sua classe Servlet é feito através de um mapeamento no web.xml, em seu computador local o servlet funciona?

 

Flww, grande abraço.

Sim , em meu http://localhost:8080/form/ShowParameters exibe perfeito todos os dados

vindos do formulário.

Tem um exemplo de Servlet na pasta /htdocs que funciona :

 

http://djalmabina.hostsyst.com/servlet/test

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Djalma, você pode perceber que este exemplo que funciona em seu servidor, ele utiliza um padrão do seu servidor de hospedagem para a chamada de um servlet.

 

Então para char seu servlet utilize o /servlet/ antes para ver se funciona corretamente.

 

 

Até mais, grande abraço

 

Djalma, você pode perceber que este exemplo que funciona em seu servidor, ele utiliza um padrão do seu servidor de hospedagem para a chamada de um servlet.

 

Então para char seu servlet utilize o /servlet/ antes para ver se funciona corretamente.

 

 

Até mais, grande abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.