package Samples; import sun.servlet.http.*; public class ServletServer { public static void main(String[] args) { boolean portSet = false; boolean servletDirSet = false; for (int i = 0; i < args.length; i++) { if (args[i].equals('-p')) { portSet = true; } if (args[i].equals('-d')) { servletDirSet = true; } } int i = 0; String[] arguments = new String[args.length + (servletDirSet ? 0 : 2) + (portSet ? 0 : 2)]; for (; i < args.length; i++) { arguments[i] = args[i]; } if (!portSet) { arguments[i++] = '-p'; arguments[i++] = '8080'; } if (!servletDirSet) { arguments[i++] = '-d'; String servletDir = System.getProperty('java.class.path'); servletDir = servletDir.substring(0,servletDir.indexOf(java.io.File.pathSeparator)); arguments[i++] = servletDir; } HttpServer.main(arguments); } }
Сам класс сервлета не делает ничего выдающегося, а просто обрабатывает значение параметра инициализации и элементарным образом реагирует на запросы, выводя некое сообщение:
package Samples; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class TestServlet extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); //Каталог, содержимое которого нужно показать try { pathToDir = getInitParameter('dirToShow'); } catch (Exception e) { e.printStackTrace(); } } String pathToDir = 'E:/Projectes/'; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType('text/html'); PrintWriter out = new PrintWriter (response.getOutputStream()); out.println('<html>'); out.println('<head><title>TestServlet</title></head>'); out.println('<body>'); out.println('</body></html>'); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType('text/html'); PrintWriter out = new PrintWriter (response.getOutputStream()); out.println('<html>'); out.println('<head><title>TestServlet</title></head>'); out.println('<body>'); out.println('</body></html>'); out.close(); } public String getServletInfo() { return 'Samples.TestServlet Information'; } }