package jtweet.web; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.repackaged.com.google.common.util.Base64; import com.google.appengine.repackaged.com.google.common.util.Base64DecoderException; import jtweet.gae.GCache; @SuppressWarnings("serial") public class ShortURLProxy extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String url = req.getParameter("u"); if (url != null) { try { url = new String(Base64.decode(Base64.decode(url))); String longurl; longurl = (String) GCache.get(url); if (longurl == null) { longurl = ShortURL.getLongURL(url); if (longurl != null) GCache.put(url, longurl, 7200); } if (longurl != null) resp.sendRedirect(longurl); else { resp.setContentType("text/html; charset=UTF-8"); String err = "<html><head><title>短网址展开出错</title></head><body>Sorry!短网址 <a href=\"" + url + "\">" + url + "</a> 展开出错。</body></html>"; resp.getWriter().println(err); } } catch (Base64DecoderException e) { // TODO Auto-generated catch block e.printStackTrace(); resp.sendError(500); } } else { resp.sendError(500); } } }