1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.eclipse.jetty.embedded;
15
16 import java.io.File;
17 import java.io.IOException;
18 import java.util.Map;
19
20 import javax.servlet.ServletException;
21 import javax.servlet.http.HttpServletRequest;
22 import javax.servlet.http.HttpServletResponse;
23
24 import org.eclipse.jetty.server.Handler;
25 import org.eclipse.jetty.server.NCSARequestLog;
26 import org.eclipse.jetty.server.Request;
27 import org.eclipse.jetty.server.Server;
28 import org.eclipse.jetty.server.handler.AbstractHandler;
29 import org.eclipse.jetty.server.handler.DefaultHandler;
30 import org.eclipse.jetty.server.handler.HandlerCollection;
31 import org.eclipse.jetty.server.handler.HandlerList;
32 import org.eclipse.jetty.server.handler.HandlerWrapper;
33 import org.eclipse.jetty.server.handler.RequestLogHandler;
34 import org.eclipse.jetty.util.ajax.JSON;
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 public class ManyHandlers
65 {
66 public static void main(String[] args)
67 throws Exception
68 {
69 Server server = new Server(8080);
70
71
72 Handler param=new ParamHandler();
73 HandlerWrapper wrapper = new HandlerWrapper()
74 {
75 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
76 {
77 request.setAttribute("welcome","Hello");
78 super.handle(target,baseRequest,request, response);
79 }
80 };
81 Handler hello=new HelloHandler();
82 Handler dft=new DefaultHandler();
83 RequestLogHandler log=new RequestLogHandler();
84
85
86 log.setRequestLog(new NCSARequestLog(File.createTempFile("demo","log").getAbsolutePath()));
87
88
89 HandlerCollection handlers = new HandlerCollection();
90 HandlerList list = new HandlerList();
91
92
93 wrapper.setHandler(hello);
94 list.setHandlers(new Handler[]{param,wrapper,dft});
95 handlers.setHandlers(new Handler[]{list,log});
96
97 server.setHandler(handlers);
98
99 server.start();
100 server.join();
101 }
102
103
104 public static class ParamHandler extends AbstractHandler
105 {
106 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
107 {
108 Map params = request.getParameterMap();
109 if (params.size()>0)
110 {
111 response.setContentType("text/plain");
112 response.getWriter().println(JSON.toString(params));
113 ((Request)request).setHandled(true);
114 }
115 }
116 }
117
118 public static class HelloHandler extends AbstractHandler
119 {
120 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
121 {
122 response.setContentType("text/html");
123 response.setStatus(HttpServletResponse.SC_OK);
124 response.getWriter().println("<h1>"+request.getAttribute("welcome") +" ManyHandler</h1>");
125 ((Request)request).setHandled(true);
126 }
127 }
128 }