/*Kristina Laukkonen. *Uppgift 1.1.1 *räknar ut hur många gånger sidan har laddats. */ import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class A111 extends HttpServlet { int count = 0; File f = null; public void init() throws ServletException { //laddar raknare.txt från nuvarande tillstånd. Där värdet av räknaren sparas FileReader fileReader = null; BufferedReader bufferedReader = null; try { f = new File(getServletContext().getRealPath("Raknare.txt")); fileReader = new FileReader("f"); bufferedReader = new BufferedReader(fileReader); String initial = bufferedReader.readLine(); count = Integer.parseInt(initial); return; } catch (FileNotFoundException ignored) { } //Inget nuvarande tillstånd catch (IOException ignored) { } //tar hand om problem under läsningen catch (NumberFormatException ignored) { } //Fel vid spartillståndet //Stänger fil finally { try { if (bufferedReader != null) { bufferedReader.close(); } } catch (IOException ignored) {} } String initial = getInitParameter("initial"); //hämtar värdet i initparametern try { count = Integer.parseInt(initial); return; } catch (NumberFormatException ignored) {} //värdet på tillståndet är null eller ingen integer //count sätts till värdet noll som e default count = 0; } // doGet sätter värdet till en text/plain. If skriver ut värdet i räknaren. public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/plain"); PrintWriter out = res.getWriter(); synchronized(this) { count++; out.println("Du är besökare nummer " + count + ", grattis!"); if (count % 10 == 0) saveState(); } } public void destroy() { saveState(); } //Metoden sparar det aktuella värdet i räknaren. public void saveState() { FileWriter fileWriter= null; PrintWriter printWriter= null; try { fileWriter = new FileWriter("Raknare.txt"); printWriter = new PrintWriter(fileWriter); printWriter.println(count); return; } catch (IOException e) { } //Stänger PrintWriter finally { if(printWriter != null) { printWriter.close(); } } } }