Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collection;
- import java.util.List;
- import java.util.Vector;
- import javax.servlet.ServletException;
- import javax.servlet.http.Cookie;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.google.gson.Gson;
- import basar.domain.BasarFacade;
- import basar.domain.BasarFactory;
- import basar.domain.Seller;
- public class CashPointServlet extends HttpServlet {
- private static final String CUSTOMERS_HISTORY_ACTION = "/history";
- private static final String CUSTOMERS_ACTION = "/customers";
- private static final String SAVE_CUSTOMER_ACTION = "/saveCustomer";
- private static final String DELETE_CUSTOMER_ACTION = "/deleteCustomer";
- private static final long serialVersionUID = 1L;
- private Gson gson = new Gson();
- private BasarFacade basar;
- @Override
- public void init() throws ServletException {
- basar = BasarFactory.instance.createBasarFacade();
- }
- @Override
- public void destroy() {
- basar = null;
- }
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- String path = req.getPathInfo();
- if (path.equals(SAVE_CUSTOMER_ACTION)) {
- saveCustomerAction(req, resp);
- }
- }
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- String path = req.getPathInfo();
- if (path.equals(CUSTOMERS_ACTION)) {
- getCustomersAction(req, resp);
- } else if (path.equals(CUSTOMERS_HISTORY_ACTION)) {
- getCustomersHistoryAction(req, resp);
- }
- }
- @Override
- protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- String path = req.getPathInfo();
- if (path.equals(DELETE_CUSTOMER_ACTION)) {
- deleteCustomerAction(req, resp);
- }
- }
- /** Read a HTTP Cookie */
- protected void getCustomersHistoryAction(HttpServletRequest req,
- HttpServletResponse resp) throws IOException {
- Cookie sellerHistoryCookie = findHistoryCookie(req);
- if (sellerHistoryCookie != null) {
- List<Seller> sellers = fromJsonString(sellerHistoryCookie
- .getValue());
- for (Seller seller : sellers) {
- PrintWriter writer = resp.getWriter();
- writer.println(seller);
- }
- }
- }
- /** Set and reset a Cookie */
- protected void writeHistory(HttpServletRequest req, HttpServletResponse resp, Seller seller) {
- Cookie sellerHistoryCookie = findHistoryCookie(req);
- if (sellerHistoryCookie == null) {
- List<Seller> sellerList = new Vector<Seller>();
- sellerList.add(seller);
- sellerHistoryCookie = new Cookie("sellerHistory", toJsonString(sellerList));
- }
- else {
- List<Seller> sellerList = fromJsonString(sellerHistoryCookie.getValue());
- sellerList.add(seller);
- sellerHistoryCookie.setValue(toJsonString(sellerList));
- }
- resp.addCookie(sellerHistoryCookie);
- }
- protected Cookie findHistoryCookie(HttpServletRequest req) {
- Cookie[] cookies = req.getCookies();
- if (cookies != null) {
- for (Cookie cookie : cookies) {
- if (cookie.getName().equals("sellerHistory")) {
- return cookie;
- }
- }
- }
- return null;
- }
- protected String toJsonString(List<Seller> sellerList) {
- return gson.toJson(sellerList);
- }
- protected List<Seller> fromJsonString(String sellersJson) {
- Seller[] sellers = gson.fromJson(sellersJson, Seller[].class);
- List<Seller> sellerList = new ArrayList<Seller>();
- sellerList.addAll(Arrays.asList(sellers));
- return sellerList;
- }
- protected void getCustomersAction(HttpServletRequest req,
- HttpServletResponse resp) throws IOException {
- Collection<Seller> sellerList = basar.getSellerList();
- Gson gson = new Gson();
- String json = gson.toJson(sellerList);
- resp.getWriter().append(json);
- }
- protected void saveCustomerAction(HttpServletRequest req,
- HttpServletResponse resp) throws IOException {
- Long basarNumber = Long.valueOf(req.getParameter("basarNumber"));
- String firstName = req.getParameter("firstName");
- String lastName = req.getParameter("lastName");
- Seller seller = basar.getSeller(basarNumber);
- boolean isNewSeller = false;
- if (seller == null) {
- seller = new Seller();
- seller.setBasarNumber(basarNumber);
- isNewSeller = true;
- }
- seller.setName(lastName);
- seller.setFirstname(firstName);
- if (isNewSeller) {
- basar.insertSeller(seller);
- } else {
- basar.updateSeller(seller);
- }
- writeHistory(req, resp, seller);
- resp.sendRedirect("../customer-overview.html");
- }
- protected void deleteCustomerAction(HttpServletRequest req,
- HttpServletResponse resp) {
- Long basarNumber = Long.valueOf(req.getParameter("basarNumber"));
- Seller seller = basar.getSeller(basarNumber);
- if (seller != null) {
- basar.deleteSeller(seller);
- }
- }
- }
Add Comment
Please, Sign In to add comment