Jump to content
bushin

jsp - > doPost

Recommended Posts

bushin

bom dia,

estou com seguinte problema:

A minha servlet não funciona e dá o seguinte erro:

type Status report

message HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource (HTTP method GET is not supported by this URL).


package utilizador;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class FormTeste01
*/
public class FormTeste01 extends HttpServlet {
private static final long serialVersionUID = 1L;
       
private String animal[] = 	{ "Cachorro", "Gato", "Passarinho", "Tartaruga", "Nenhum" };

protected void doPost(HttpServletRequest request,HttpServletResponse response) 
throws ServletException, IOException {
int estima[] = null, total = 0;
File f = new File( "c:\\temp\\amostra.dat" );
if ( f.exists() ) {
// Determina o número de respostas até agora
try {
ObjectInputStream entrada = 
new ObjectInputStream( new FileInputStream( f ) );
estima = (int [])entrada.readObject();
entrada.close();

for ( int i = 0; i < estima.length; i++ )
	total = total + estima[ i ];
}

catch( ClassNotFoundException e ) {
	e.printStackTrace();
	}
	}
	else
	estima = new int[ 5 ];
	// Lê a resposta da pesquisa atual
	String valor = request.getParameter( "animal" );
	total++;

	// Determina a opção do usuário e atualiza seu total
	for ( int i = 0; i < animal.length; i++ )
	if ( valor.equals( animal[ i ] ) )
	estima[ i ]++;

	// Grava os totais atualizados no arquivo
	ObjectOutputStream saida = 
	new ObjectOutputStream( new FileOutputStream( f ) );

	saida.writeObject( estima );
	saida.flush();
	saida.close();

	// Calcula as porcentagens
	double porcen[] = new double[ estima.length ];
	for ( int i = 0; i < porcen.length; i++ )
	porcen[ i ] = 100.0 * estima[ i ]/total;

	// Envia mensagem ao cliente
	response.setContentType( "text/html" );
	PrintWriter rsSaida = response.getWriter();
	StringBuffer sb = new StringBuffer();
	sb.append( "<html><head>" );
	sb.append( "<title>Agradecimento</title></head>" );
	sb.append( "<body><h2>Obrigado por sua participação.</h2>" );
	sb.append( "<h3>Resultados atuais da pesquisa:</h3><PRE>" );
	DecimalFormat df = new DecimalFormat( "#0.00" );
	for ( int i = 0; i < porcen.length; i++ ) {
	sb.append( animal[ i ] );
	sb.append( ": " );
	sb.append( df.format( porcen[ i ] ) );
	sb.append( "% - respostas: " );
	sb.append( estima[ i ] );
	sb.append( "\n" );
	}
	sb.append( "\nTotal de respostas: " );
	sb.append( total );
	sb.append( "</PRE></body></html>" );
	rsSaida.println( sb.toString() );
	rsSaida.close();
}	
}



<html>
<head>
<title>Formulário de pesquisa</title>
</head>
<body>
<form
method="POST" action="http://localhost:80/utilizador/FormTeste01">
Qual é seu animal de estimação favorito?<BR><BR>
<INPUT TYPE=radio NAME=animal VALUE=Cachorro>Cachorro<BR>
<INPUT TYPE=radio NAME=animal VALUE=Gato>Gato<BR>
<INPUT TYPE=radio NAME=animal VALUE=Passarinho>Passarinho<BR>
<INPUT TYPE=radio NAME=animal VALUE=Tartaruga>Tartaruga<BR>
<INPUT TYPE=radio NAME=animal VALUE=Nenhum>Nenhum<BR><BR>     
<INPUT Type=submit VALUE="Enviar">
<INPUT TYPE=reset VALUE="Limpar">
</form>
</body>
</html>

Share this post


Link to post
Share on other sites
Cybernavigator

bom dia,

estou com seguinte problema:

A minha servlet não funciona e dá o seguinte erro:


package utilizador;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class FormTeste01
*/
public class FormTeste01 extends HttpServlet {
private static final long serialVersionUID = 1L;
       
private String animal[] = 	{ "Cachorro", "Gato", "Passarinho", "Tartaruga", "Nenhum" };

protected void doPost(HttpServletRequest request,HttpServletResponse response) 
throws ServletException, IOException {
int estima[] = null, total = 0;
File f = new File( "c:\\temp\\amostra.dat" );
if ( f.exists() ) {
// Determina o número de respostas até agora
try {
ObjectInputStream entrada = 
new ObjectInputStream( new FileInputStream( f ) );
estima = (int [])entrada.readObject();
entrada.close();

for ( int i = 0; i < estima.length; i++ )
	total = total + estima[ i ];
}

catch( ClassNotFoundException e ) {
	e.printStackTrace();
	}
	}
	else
	estima = new int[ 5 ];
	// Lê a resposta da pesquisa atual
	String valor = request.getParameter( "animal" );
	total++;

	// Determina a opção do usuário e atualiza seu total
	for ( int i = 0; i < animal.length; i++ )
	if ( valor.equals( animal[ i ] ) )
	estima[ i ]++;

	// Grava os totais atualizados no arquivo
	ObjectOutputStream saida = 
	new ObjectOutputStream( new FileOutputStream( f ) );

	saida.writeObject( estima );
	saida.flush();
	saida.close();

	// Calcula as porcentagens
	double porcen[] = new double[ estima.length ];
	for ( int i = 0; i < porcen.length; i++ )
	porcen[ i ] = 100.0 * estima[ i ]/total;

	// Envia mensagem ao cliente
	response.setContentType( "text/html" );
	PrintWriter rsSaida = response.getWriter();
	StringBuffer sb = new StringBuffer();
	sb.append( "<html><head>" );
	sb.append( "<title>Agradecimento</title></head>" );
	sb.append( "<body><h2>Obrigado por sua participação.</h2>" );
	sb.append( "<h3>Resultados atuais da pesquisa:</h3><PRE>" );
	DecimalFormat df = new DecimalFormat( "#0.00" );
	for ( int i = 0; i < porcen.length; i++ ) {
	sb.append( animal[ i ] );
	sb.append( ": " );
	sb.append( df.format( porcen[ i ] ) );
	sb.append( "% - respostas: " );
	sb.append( estima[ i ] );
	sb.append( "\n" );
	}
	sb.append( "\nTotal de respostas: " );
	sb.append( total );
	sb.append( "</PRE></body></html>" );
	rsSaida.println( sb.toString() );
	rsSaida.close();
}	
}



<html>
<head>
<title>Formulário de pesquisa</title>
</head>
<body>
<form
method="POST" action="http://localhost:80/utilizador/FormTeste01">
Qual é seu animal de estimação favorito?<BR><BR>
<INPUT TYPE=radio NAME=animal VALUE=Cachorro>Cachorro<BR>
<INPUT TYPE=radio NAME=animal VALUE=Gato>Gato<BR>
<INPUT TYPE=radio NAME=animal VALUE=Passarinho>Passarinho<BR>
<INPUT TYPE=radio NAME=animal VALUE=Tartaruga>Tartaruga<BR>
<INPUT TYPE=radio NAME=animal VALUE=Nenhum>Nenhum<BR><BR>     
<INPUT Type=submit VALUE="Enviar">
<INPUT TYPE=reset VALUE="Limpar">
</form>
</body>
</html>

Experimenta em vez de method="POST" meter method="GET".

Pelo erro tas a fazer pedidos GET quando o site requer que sejam POST.

Das duas 1a, ou mudas no java para enviar/obter pedidos POST,

ou mudas o form de POST para GET


Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico***

Share this post


Link to post
Share on other sites
bushin

alterei esta linha

protected void doGet(HttpServletRequest request,HttpServletResponse response) 

e continua a dar erro

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.