import javax.servlet.*; import javax.servlet.http.*; import java.text.*; import java.io.*; import java.util.*; public class PaivaKysely extends HttpServlet { private String paivienNimet[] = { "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"}; public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { int paivat[] = null, vastaustenLkm = 0; File f = new File( "vpkysely.txt" ); if ( f.exists() ) { // Lasketaan vastausten lkm try { ObjectInputStream input = new ObjectInputStream( new FileInputStream( f ) ); paivat = (int []) input.readObject(); input.close(); for ( int i = 0; i < paivat.length; ++i ) vastaustenLkm += paivat[ i ]; } catch( ClassNotFoundException e ) { e.printStackTrace(); } } else{ paivat = new int[ paivienNimet.length ]; } // luetaan vastaus String vastaus = request.getParameter( "paiva" ); vastaustenLkm++; // käsitellään vastaus for ( int i = 0; i < paivienNimet.length; ++i ) if ( vastaus.equals( paivienNimet[ i ] ) ) paivat[ i ]++; // Kirjoitetaan tulokset levylle tiedostoon ObjectOutputStream output = new ObjectOutputStream( new FileOutputStream( f ) ); output.writeObject( paivat ); output.flush(); output.close(); // Lasketaan prosentit double prosentit[] = new double[ paivat.length ]; for ( int i = 0; i < prosentit.length; ++i ) prosentit[ i ] = 100.0 * paivat[ i ] / vastaustenLkm; // Muodostetaan vastaussivu asiakkaalle response.setContentType( "text/html" ); PrintWriter responseOutput = response.getWriter(); StringBuffer buf = new StringBuffer(); buf.append( "\n" ); buf.append( "
" ); DecimalFormat twoDigits = new DecimalFormat( "#0.00" ); for ( int i = 0; i < prosentit.length; ++i ) { buf.append( "\n" ); buf.append( "\n" ); buf.append( "\n" ); responseOutput.println( buf.toString() ); responseOutput.close(); } }
" ); buf.append( paivienNimet[ i ] ); buf.append( ": " ); buf.append( twoDigits.format( prosentit[ i ] ) ); buf.append( "%, vastausten lkm: " ); buf.append( paivat[ i ] ); buf.append( "\n" ); } buf.append( "\n
Vastauksia yhteensä: " ); buf.append( vastaustenLkm ); buf.append( "