Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.adssets.servlet; import com.adssets.ejb.DataAccessLocal; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author adssets */ @WebServlet(name = "Market", urlPatterns = { "/Market" }) public class MarketServlet extends HttpServlet { @EJB private DataAccessLocal data; /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); try (PrintWriter out = response.getWriter()) { String marketId = request.getParameter("marketId"); if (marketId == null) { out.println(data.getMarkets()); } else { out.println(data.getMarketByID(marketId)); } } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpServletResponse http = (HttpServletResponse) response; response.setHeader("Access-Control-Allow-Origin", "*"); processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Access-Control-Allow-Origin", "*"); ; try (PrintWriter out = response.getWriter()) { StringBuilder sb = new StringBuilder(); String line = null; try { BufferedReader reader = request.getReader(); while ((line = reader.readLine()) != null) sb.append(line); } catch (Exception e) { System.out.println( "com.adssets.servlet.MarketServlet.processRequestPost()" + " Could not read POST body"); } JsonObject jsonObject = (new JsonParser()).parse(sb.toString()).getAsJsonObject(); if (jsonObject.has("name") && jsonObject.has("description")) { String res = data.createMarket(jsonObject.toString()); out.println(res); } else { System.out.println( "com.adssets.servlet.MarketServlet.processRequestPost()" + " Missing fields in body"); } } } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }