public class HTTPPostServlet extends HttpServlet {
private String animalNames[] =
{ “cachorro”, “gato”, “pássaro”, “cobra”, “nenhum” };
public void doPost ( HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException
}
int animals[] = null, total = 0;
File f = new File ( "survey.txt" );
if ( f.exists() ) {
//Determina nº de resposta da pesquisa até agora
try {
ObjectInputStream input = new ObjectInputStream(
new FileInputStream ( f ) );
animals = (int []) input.readObject();
input.close(); // fecha o fluxo
for ( int i = 0; i < animals.length ; ++i )
total += animals [ i ];
}
catch ( ClassNotFoundException cnfe ) {
cnfe.printStackTrace();
}
}
else
animals = new int [ 5 ];
//lê a resposta da pesquisa atual
String value =
request.getParameter( "animal" );
++total; //atualiza o total de todas as respostas
//determina qual foi selecionado e atualiza seu total
for ( int i = 0 ; i < animalNames.length ; ++i )
if ( value.equals( animalNames[ i ] ) )
++animals[ i ];
//grava os totais atualizados em disco
ObjectOutputStream output = new ObjectOutputStream(
new FileOutputStream( f ) );
output.writeObject( animals );
output.flush();
output.close();
//calcula as porcentagens
double percentages[] = new double[ animals.length ];
for ( int i = 0 ; i < percentages.length ; ++i )
percentages[ i ] = 100.0 * animals[ i ] / total;
//envia uma mensagem de agradecimento para o cliente
response.setContentType( "text/html" ); //tipo de conteúdo
PrintWriter responseOutput = response.getWriter();
StringBuffer buf = new StrinBuffer();
buf.append( "<html>
" );
buf.append( "<title>Agradecimento!</title>
" );
buf.append( "Obrigado por sua participação.
" );
buf.append( “<BR>Resultados:
<PRE>” );
DecimalFormat twoDigits = new DecimalFormal( "#0.00" );
for ( int i = 0; i < percentages.length ; ++i ) {
buf.append( "<BR>" );
buf.append( animalNames[ i ] );
buf.append( ": " );
buf.append( twoDigits.format( percentages[ i ] ) );
buf.append( "% respostas: " );
buf.append( animals[ i ] );
buf.append( "
" );
}
buf.append( "
<BR><BR>Total de respostas: " );
buf.append( total );
buf.append( “</PRE>
</html>” );
HTTPPostServlet.java:15: ‘;’ expected
throws ServletException, IOException
^
HTTPPostServlet.java:17: ‘class’ or ‘interface’ expected
int animals[] = null, total = 0;
^
HTTPPostServlet.java:18: ‘class’ or ‘interface’ expected
File f = new File ( “survey.txt” );
^
HTTPPostServlet.java:20: ‘class’ or ‘interface’ expected
if ( f.exists() ) {
^
HTTPPostServlet.java:40: ‘class’ or ‘interface’ expected
String value =
^
HTTPPostServlet.java:42: ‘class’ or ‘interface’ expected
++total; //atualiza o total de todas as respostas
^
HTTPPostServlet.java:45: ‘class’ or ‘interface’ expected
++total; //atualiza o total de todas as respostas
^
HTTPPostServlet.java:50: ‘class’ or ‘interface’ expected
ObjectOutputStream output = new ObjectOutputStream(
^
HTTPPostServlet.java:53: ‘class’ or ‘interface’ expected
output.writeObject( animals );
^
HTTPPostServlet.java:54: ‘class’ or ‘interface’ expected
output.flush();
^
HTTPPostServlet.java:55: ‘class’ or ‘interface’ expected
output.close();
^
HTTPPostServlet.java:58: ‘class’ or ‘interface’ expected
double percentages[] = new double[ animals.length ];
^
HTTPPostServlet.java:60: ‘class’ or ‘interface’ expected
for ( int i = 0 ; i < percentages.length ; ++i )
^
HTTPPostServlet.java:64: ‘class’ or ‘interface’ expected
response.setContentType( “text/html” ); //tipo de conte·do
^
HTTPPostServlet.java:66: ‘class’ or ‘interface’ expected
PrintWriter responseOutput = response.getWriter();
^
HTTPPostServlet.java:67: ‘class’ or ‘interface’ expected
StringBuffer buf = new StrinBuffer();
^
HTTPPostServlet.java:68: ‘class’ or ‘interface’ expected
buf.append( "<html>
" );
^
HTTPPostServlet.java:69: ‘class’ or ‘interface’ expected
buf.append( "<title>Agradecimento!</title>
" );
^
HTTPPostServlet.java:70: ‘class’ or ‘interface’ expected
buf.append( "Obrigado por sua participaþÒo.
" );
^
HTTPPostServlet.java:71: ‘class’ or ‘interface’ expected
buf.append( “<BR>Resultados:
<PRE>” );
^
HTTPPostServlet.java:73: ‘class’ or ‘interface’ expected
DecimalFormat twoDigits = new DecimalFormal( “#0.00” );
^
HTTPPostServlet.java:74: ‘class’ or ‘interface’ expected
for ( int i = 0; i < percentages.length ; ++i ) {
^
HTTPPostServlet.java:85: ‘class’ or ‘interface’ expected
buf.append( total );
^
HTTPPostServlet.java:86: ‘class’ or ‘interface’ expected
buf.append( “</PRE>
</html>” );
^
HTTPPostServlet.java:88: ‘class’ or ‘interface’ expected
responseOutput.println( buf.toString() );
^
HTTPPostServlet.java:89: ‘class’ or ‘interface’ expected
responseOutput.close();
^
HTTPPostServlet.java:90: ‘class’ or ‘interface’ expected
}
^
HTTPPostServlet.java:92: ‘class’ or ‘interface’ expected
^
HTTPPostServlet.java:13: missing method body, or declare abstract
public void doPost ( HttpServletRequest request,
^
29 errors
:oops: Realmente cara, vc tem toda razão!
Compilei com a alteração e está praticamente resolvido… somente este pequeno erro nos digitos decimais e pronto… tem idéia de como resolver?
HTTPPostServlet.java:67: cannot resolve symbol
symbol : class StrinBuffer
location: class HTTPPostServlet
StringBuffer buf = new StrinBuffer();
^
HTTPPostServlet.java:73: cannot resolve symbol
symbol : class DecimalFormal
location: class HTTPPostServlet
DecimalFormat twoDigits = new DecimalFormal( “#0.00” );
^
2 errors
Nada muito sério ramires, só toma cuidado com a digitação - em especial, atenção para maíusculas e mínusculas que podem geram erros um pouco difíceis de localizar.
Estou gostando muito deste GUJ, pois aqui dá pra ver que o pessoal realmente se importa e ajuda aqueles que estão começando.
Já abusando da boa vontade de vocês, vejam se podem me ajudar nesta outra questão:
Só estou conseguindo compilar meus arquivos .java dentro da pasta BIN do J2SDK, meu AUTOEXEC.BAT está configurado da seguinte maneira:
SET JAVA_HOME=C:j2sdk1.4.0_03
SET PATH=%PATH%;%JAVA_HOME%in;C:ARQUIV~1IBMCLIENT~1;C:ARQUIV~1IBMCLIENT~1SHARED;C:ARQUIV~1IBMCLIENT~1EMULATOR
SET CLASSPATH=.;%JAVA_HOME%
tentei rodar um servlet parecido com este:
entro com dados da pesquisa… ok
mas não retorna o resultado
será q é alguma configuração no web.xml
por q testei com um servlet mas simples e rodou…
e o q parece com esse, só rodou com fiz o deploy dele no diretório “examples”.