package org.dynmap.servlet; import java.io.IOException; import java.nio.charset.Charset; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.dynmap.DynmapCore; public class ConfigJSServlet extends HttpServlet { private static final long serialVersionUID = 3543457384759837L; private byte[] outputBytes; public ConfigJSServlet(DynmapCore core) { Charset cs_utf8 = Charset.forName("UTF-8"); StringBuilder sb = new StringBuilder(); sb.append("var config = {\n"); sb.append(" url : {\n"); /* Get configuration URL */ sb.append(" configuration: '"); sb.append(core.configuration.getString("url/configuration", "up/configuration")); sb.append("',\n"); /* Get update URL */ sb.append(" update: '"); sb.append(core.configuration.getString("url/update", "up/world/{world}/{timestamp}")); sb.append("',\n"); /* Get sendmessage URL */ sb.append(" sendmessage: '"); sb.append(core.configuration.getString("url/sendmessage", "up/sendmessage")); sb.append("',\n"); /* Get login URL */ sb.append(" login: '"); sb.append(core.configuration.getString("url/login", "up/login")); sb.append("',\n"); /* Get register URL */ sb.append(" register: '"); sb.append(core.configuration.getString("url/register", "up/register")); sb.append("',\n"); /* Get tiles URL */ sb.append(" tiles: '"); sb.append(core.configuration.getString("url/tiles", "tiles/")); sb.append("',\n"); /* Get markers URL */ sb.append(" markers: '"); sb.append(core.configuration.getString("url/markers", "tiles/")); sb.append("'\n }\n};\n"); outputBytes = sb.toString().getBytes(cs_utf8); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String dateStr = new Date().toString(); res.addHeader("Date", dateStr); res.setContentType("text/javascript; charset=utf-8"); res.addHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT"); res.addHeader("Last-modified", dateStr); res.setContentLength(outputBytes.length); res.getOutputStream().write(outputBytes); } }