📄 servletserver.java
字号:
package org.placelab.proxy;import java.util.Enumeration;import java.util.Hashtable;public class ServletServer extends HTTPServer { public static final int DEFAULT_PORT = 2081; private static final String MESSAGE_404 = "404 Not Found."; private static Hashtable servlets = new Hashtable(); private static String defaultPattern = null; public ServletServer (int port) { super(port, 2, "Placelab Servlet Server"); // only use two threads } public static boolean addServlet (String urlPattern, Servlet servlet) {; if (servlets.containsKey(urlPattern)) return false; servlets.put(urlPattern, servlet);// System.err.println("Servlet Added: " + servlet.getName() + " at address: " + getProperURL() + urlPattern); return true; } public static void setDefault (String pattern) { defaultPattern = pattern; } public HTTPResponse serviceRequest (HTTPRequest request) { String path = request.url.getPath().trim().replaceAll("//", "/"); if (path.length() == 0) path = "/"; if ((defaultPattern != null) && path.equals("/") && !servlets.containsKey("/")) { HTTPResponse redirect = new HTTPResponse(HTTPResponse.RESPONSE_MOVED_TEMPORARILY, null, -1, null ); redirect.addHeader("Location", defaultPattern); return redirect; } for (Enumeration e = servlets.keys(); e.hasMoreElements();) { String pattern = (String) e.nextElement(); if (path.indexOf(pattern) == 0) { Servlet s = (Servlet) servlets.get(pattern); HTTPResponse response = s.serviceRequest(request); return response; } } return new HTTPResponse(HTTPResponse.RESPONSE_NOT_FOUND, "text/html", MESSAGE_404.length(), MESSAGE_404.getBytes()); } public static void main (String[] args) { try { ServletServer ss = new ServletServer(9990); addServlet("/test", new TestServlet()); ServletServer.setDefault("/test"); ss.startServer(); } catch (Exception e) { e.printStackTrace(); } } public static String getProperURL () { String shost = null; String sport = null; if (shost == null) shost = "localhost"; if (sport == null) sport = Integer.toString(DEFAULT_PORT); return "http://"+shost+":"+sport+""; }}class TestServlet implements Servlet { public String getName () { return "TestServlet"; } public HTTPResponse serviceRequest (HTTPRequest request) { String text = "<html><body><b>Test Servlet OK!</b></body></html>\n"; return new HTTPResponse( HTTPResponse.RESPONSE_OK, "text/html", // mime type text.length(), text.getBytes()); } public Hashtable injectHeaders(HTTPRequest request) { return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -