Mercurial Hosting > luan
comparison src/org/eclipse/jetty/server/handler/ResourceHandler.java @ 1000:32d4b569567c
simplify handle()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 19 Oct 2016 04:22:51 -0600 |
parents | 7d28be82ab75 |
children | 6939226e0ac4 |
comparison
equal
deleted
inserted
replaced
999:74b9daf2826c | 1000:32d4b569567c |
---|---|
21 import java.io.IOException; | 21 import java.io.IOException; |
22 import java.io.OutputStream; | 22 import java.io.OutputStream; |
23 import java.net.MalformedURLException; | 23 import java.net.MalformedURLException; |
24 | 24 |
25 import javax.servlet.ServletException; | 25 import javax.servlet.ServletException; |
26 import javax.servlet.http.HttpServletRequest; | |
27 import javax.servlet.http.HttpServletResponse; | 26 import javax.servlet.http.HttpServletResponse; |
28 | 27 |
29 import org.eclipse.jetty.http.HttpFields; | 28 import org.eclipse.jetty.http.HttpFields; |
30 import org.eclipse.jetty.http.HttpHeaders; | 29 import org.eclipse.jetty.http.HttpHeaders; |
31 import org.eclipse.jetty.http.HttpMethods; | 30 import org.eclipse.jetty.http.HttpMethods; |
306 } | 305 } |
307 | 306 |
308 return null; | 307 return null; |
309 } | 308 } |
310 | 309 |
311 /* ------------------------------------------------------------ */ | 310 @Override |
312 /* | 311 public void handle(String target, Request request, HttpServletResponse response) throws IOException, ServletException |
313 * @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, int) | 312 { |
314 */ | 313 if (request.isHandled()) |
315 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException | |
316 { | |
317 if (baseRequest.isHandled()) | |
318 return; | 314 return; |
319 | 315 |
320 boolean skipContentBody = false; | 316 boolean skipContentBody = false; |
321 | 317 |
322 if(!HttpMethods.GET.equals(request.getMethod())) | 318 if(!HttpMethods.GET.equals(request.getMethod())) |
323 { | 319 { |
324 if(!HttpMethods.HEAD.equals(request.getMethod())) | 320 if(!HttpMethods.HEAD.equals(request.getMethod())) |
325 { | 321 { |
326 //try another handler | 322 //try another handler |
327 super.handle(target, baseRequest, request, response); | 323 super.handle(target, request, response); |
328 return; | 324 return; |
329 } | 325 } |
330 skipContentBody = true; | 326 skipContentBody = true; |
331 } | 327 } |
332 | 328 |
333 Resource resource = getResource(baseRequest); | 329 Resource resource = getResource(request); |
334 | 330 |
335 if (resource==null || !resource.exists()) | 331 if (resource==null || !resource.exists()) |
336 { | 332 { |
337 if (target.endsWith("/jetty-dir.css")) | 333 if (target.endsWith("/jetty-dir.css")) |
338 { | 334 { |
342 response.setContentType("text/css"); | 338 response.setContentType("text/css"); |
343 } | 339 } |
344 else | 340 else |
345 { | 341 { |
346 //no resource - try other handlers | 342 //no resource - try other handlers |
347 super.handle(target, baseRequest, request, response); | 343 super.handle(target, request, response); |
348 return; | 344 return; |
349 } | 345 } |
350 } | 346 } |
351 | 347 |
352 if (!_aliases && resource.getAlias()!=null) | 348 if (!_aliases && resource.getAlias()!=null) |
354 LOG.info(resource+" aliased to "+resource.getAlias()); | 350 LOG.info(resource+" aliased to "+resource.getAlias()); |
355 return; | 351 return; |
356 } | 352 } |
357 | 353 |
358 // We are going to serve something | 354 // We are going to serve something |
359 baseRequest.setHandled(true); | 355 request.setHandled(true); |
360 | 356 |
361 if (resource.isDirectory()) | 357 if (resource.isDirectory()) |
362 { | 358 { |
363 if (!request.getPathInfo().endsWith(URIUtil.SLASH)) | 359 if (!request.getPathInfo().endsWith(URIUtil.SLASH)) |
364 { | 360 { |
370 if (welcome!=null && welcome.exists()) | 366 if (welcome!=null && welcome.exists()) |
371 resource=welcome; | 367 resource=welcome; |
372 else | 368 else |
373 { | 369 { |
374 doDirectory(request,response,resource); | 370 doDirectory(request,response,resource); |
375 baseRequest.setHandled(true); | 371 request.setHandled(true); |
376 return; | 372 return; |
377 } | 373 } |
378 } | 374 } |
379 | 375 |
380 // set some headers | 376 // set some headers |
416 resource.writeTo(out,0,resource.length()); | 412 resource.writeTo(out,0,resource.length()); |
417 } | 413 } |
418 } | 414 } |
419 | 415 |
420 /* ------------------------------------------------------------ */ | 416 /* ------------------------------------------------------------ */ |
421 protected void doDirectory(HttpServletRequest request,HttpServletResponse response, Resource resource) | 417 protected void doDirectory(Request request,HttpServletResponse response, Resource resource) |
422 throws IOException | 418 throws IOException |
423 { | 419 { |
424 if (_directory) | 420 if (_directory) |
425 { | 421 { |
426 String listing = resource.getListHTML(request.getRequestURI(),request.getPathInfo().lastIndexOf("/") > 0); | 422 String listing = resource.getListHTML(request.getRequestURI(),request.getPathInfo().lastIndexOf("/") > 0); |