avatar
get request parameter of SlingServlet AEM

> Be assumption that existed servlet http://localhost:4502/bin/flagtick/httpcall, we can get parameter from request as below

public class FlagtickCustomServlet extends SlingAllMethodsServlet {

    private static final long serialVersionUID = -2014397651676211439L;
    private static final Logger log = LoggerFactory.getLogger(FlagtickCustomServlet.class);

    @Override
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {

        final String dateString = request.getParameter("DATE_STRING_PARAMETER");
        if (StringUtils.isBlank(dateString)) {
            String errorMsg = "No date string parameter found for the request";
            response.getWriter().append(errorMsg);
            response.setStatus(HTTP_BAD_REQUEST);
            return;
        }

        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.writeValue(response.getWriter(), "<Your Data Response>");
    }
}

> Encoding and Servlet API by using setContentType or setCharacterEncoding

response.setContentType(Constants.CONTENT_TYPE_JSON);
response.setCharacterEncoding(Constants.ENCODING_UTF8);
response.setStatus(HTTP_OK);

Normally, we use it in doPost()

> Using ObjectMapper to parse json

response.setContentType(Constants.CONTENT_TYPE_JSON);
response.setCharacterEncoding(Constants.ENCODING_UTF8);
ObjectMapper objectMapper = new ObjectMapper();

...

String msg = "Your manipulation has been successfully!";
response.setStatus(HttpsURLConnection.HTTP_OK);
objectMapper.writeValue(response.getWriter(), msg);
24
create custom servlet
You need to login to do this manipulation!