view src/main/java/de/mpiwg/gazetteer/rest/UtilsServlet.java @ 8:8702aa85d0fb

add bookBean
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 26 May 2015 14:29:33 +0200
parents 3e62083dbcbf
children
line wrap: on
line source

package de.mpiwg.gazetteer.rest;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.json.JSONObject;

import de.mpiwg.web.jsp.SessionBean;
import de.mpiwg.web.jsp.utils.SessionCollectorListener;

@WebServlet("/rest/utils/*")
public class UtilsServlet extends HttpServlet {

	private static final long serialVersionUID = -8809504256505388787L;

	private final static Logger LOGGER = Logger.getLogger(UtilsServlet.class.getCanonicalName());

	private final static int MINS_30 = 60 * 30;
	
	@Override
	public void init() throws ServletException {

	}

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		try {
			processRequest(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		try {
			processRequest(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		String method = TextServlet.getLastPathComponent(request);
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		
		response.setContentType("application/json");
		JSONObject json = new JSONObject();
		//System.out.println("Own Session: " + request.getSession().getId());
		
		if(StringUtils.equals(method, "getUser")){
			String sessionId = getString(request, "sessionId");
			ServletContext context = request.getSession().getServletContext();
			
			Map<String, HttpSession> sessionCollector = (Map<String, HttpSession>) context.getAttribute(SessionCollectorListener.SESSION_COLLECTOR);	
			
			if(sessionCollector.get(sessionId) != null){
				HttpSession session = sessionCollector.get(sessionId);
				session.setMaxInactiveInterval(MINS_30);
				SessionBean sessionBean = (SessionBean)session.getAttribute("sessionBean");
				
				json.put("status", "ok");
				json.put("sessionId", sessionId);
				json.put("userName", sessionBean.getUserName());
				
			}else{
				json.put("status", "error");
				json.put("message", "The session has not been found.");
				json.put("sessionId", sessionId);
			}
		}
		
		PrintWriter out = response.getWriter();
		out.print(json.toString());
		out.flush();
		
	}
	
	public static Long getLong(HttpServletRequest request, String name){
		Long value = null;
		try{
			String s = request.getParameter(name);
			value = new Long(s);
		}catch (Exception e) {
		}
		return value;
	}
	
	public static String getString(HttpServletRequest request, String name){
		String value = null;
		try{
			value = request.getParameter(name);
		}catch (Exception e) {
		}
		return value;
	}	
}