Commit be0ff69c by Patryk Czarnik

Koszyk z listenerem

parent 9e324c2c
......@@ -29,7 +29,7 @@ public class PhotoUtil {
try {
return Files.readAllBytes(path);
} catch (IOException e) {
System.err.println(e);
// System.err.println(e);
throw new RecordNotFound("Cannot read photo for product id = " + productId);
}
}
......
......@@ -31,16 +31,11 @@ public class AddToBasket extends HttpServlet {
// ServletContext servletContext = this.getServletContext();
// Sesja jest skojarzona z konkretnym klientem, działa to dzięki ciasteczkom.
// Dzięki obecności Listenera mogę założyć, że koszyk jest obecny w sesji.
HttpSession session = request.getSession();
Basket basket = (Basket) session.getAttribute("basket");
if(basket == null) {
basket = new Basket();
session.setAttribute("basket", basket);
}
basket.addProduct(product);
}
} catch(Exception e) {
// ignorujemy błędy
}
......
package sklep.web;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import sklep.basket.Basket;
@WebListener
public class BasketListener implements HttpSessionListener {
/* Listener to jest klasa, w której możemy podać własne kody, które serwer wykona w odpowiednim momencie działania aplikacji.
* Tutaj obsługujemy zdarzenia utworzenia nowej sesji (i wtedy umieszczamy w sesji pusty koszyk)
* i zakończenia sesji.
*/
public void sessionCreated(HttpSessionEvent se) {
HttpSession session = se.getSession();
System.out.println("Nowa sesja: " + session.getId());
session.setMaxInactiveInterval(30);
session.setAttribute("basket", new Basket());
}
public void sessionDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
System.out.println("Koniec sesji: " + session.getId());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment