Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.nio.file.FileSystemNotFoundException;
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /*
- * Detta program är en räknare som visar hur många som besökt en sida.
- * Värdet lagras i en fil på serversidan.
- *
- */
- /**
- * Servlet implementation class HitCounter
- */
- @WebServlet("/HitCounter")
- public class HitCounter extends HttpServlet {
- private static final long serialVersionUID = 1L;
- private int count;
- private String fileName = "number_of_hits.txt";
- private File file;
- private String initial;
- public HitCounter() {
- super(); // TODO Auto-generated constructor stub }
- }
- /**
- * @see HttpServlet#HttpServlet()
- */
- /*Denna metod hämtar värdet från filen */
- public void init() throws ServletException {
- file = new File(getServletContext().getRealPath("/") + fileName);
- FileReader fileReader = null;
- BufferedReader bufferedReader = null;
- try {
- fileReader = new FileReader(file.getAbsolutePath());
- bufferedReader = new BufferedReader(fileReader);
- initial = bufferedReader.readLine();
- count = Integer.parseInt(initial);
- return;
- } catch (FileNotFoundException fnfe) {
- System.err.println("Problem med att hitta filen");
- } catch (IOException ioe) {
- System.err.println("Problem med att läsa filen");
- } catch (NumberFormatException nfe) {
- System.err.println("Problem med värdet");
- } finally {
- try {
- if (bufferedReader != null) {
- bufferedReader.close();
- }
- } catch (IOException ioe) {
- System.out.println("hej");
- }
- }
- String initial = getInitParameter("initial");
- try {
- count = Integer.parseInt(initial);
- return;
- } catch (NumberFormatException nfe) {
- count = 0;
- }
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
- * response)
- */
- /*Metoden skriver ut siffran som finns lagrad i filen*/
- protected void doGet(HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {
- response.setContentType("text/plain");
- PrintWriter out = response.getWriter();
- synchronized (this) {
- count++;
- out.println("Since loading, this servlet has been accessed "
- + count + " times.");
- }
- }
- public void destroy() {
- super.destroy();
- saveState();
- }
- /*Detta sparar värdet på antalet träffar i filen */
- public void saveState() {
- FileWriter fileWriter = null;
- PrintWriter printWriter = null;
- synchronized (this) {
- try {
- fileWriter = new FileWriter(file);
- printWriter = new PrintWriter(fileWriter);
- printWriter.println(count);
- return;
- } catch (IOException ioe) {
- System.out.println("hej");
- }
- finally {
- if (printWriter != null) {
- printWriter.flush();
- printWriter.close();
- }
- }
- }
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
- * response)
- */
- protected void doPost(HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement