comparison src/org/eclipse/jetty/server/Response.java @ 911:cab5830e1ab0

remove ErrorHandler
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 08 Oct 2016 21:37:13 -0600
parents df84a1741687
children 5ee36654b383
comparison
equal deleted inserted replaced
910:9b65e8064f90 911:cab5830e1ab0
44 import org.eclipse.jetty.http.HttpURI; 44 import org.eclipse.jetty.http.HttpURI;
45 import org.eclipse.jetty.http.HttpVersions; 45 import org.eclipse.jetty.http.HttpVersions;
46 import org.eclipse.jetty.http.MimeTypes; 46 import org.eclipse.jetty.http.MimeTypes;
47 import org.eclipse.jetty.io.BufferCache.CachedBuffer; 47 import org.eclipse.jetty.io.BufferCache.CachedBuffer;
48 import org.eclipse.jetty.server.handler.ContextHandler; 48 import org.eclipse.jetty.server.handler.ContextHandler;
49 import org.eclipse.jetty.server.handler.ErrorHandler;
50 import org.eclipse.jetty.util.ByteArrayISO8859Writer; 49 import org.eclipse.jetty.util.ByteArrayISO8859Writer;
51 import org.eclipse.jetty.util.QuotedStringTokenizer; 50 import org.eclipse.jetty.util.QuotedStringTokenizer;
52 import org.eclipse.jetty.util.StringUtil; 51 import org.eclipse.jetty.util.StringUtil;
53 import org.eclipse.jetty.util.URIUtil; 52 import org.eclipse.jetty.util.URIUtil;
54 import org.slf4j.Logger; 53 import org.slf4j.Logger;
245 code!=SC_PARTIAL_CONTENT && 244 code!=SC_PARTIAL_CONTENT &&
246 code>=SC_OK) 245 code>=SC_OK)
247 { 246 {
248 Request request = _connection.getRequest(); 247 Request request = _connection.getRequest();
249 248
250 ErrorHandler error_handler = null; 249 setHeader(HttpHeaders.CACHE_CONTROL, "must-revalidate,no-cache,no-store");
251 ContextHandler.Context context = request.getContext(); 250 setContentType(MimeTypes.TEXT_HTML_8859_1);
252 if (context!=null) 251 ByteArrayISO8859Writer writer= new ByteArrayISO8859Writer(2048);
253 error_handler=context.getContextHandler().getErrorHandler(); 252 if (message != null)
254 if (error_handler==null) 253 {
255 error_handler = _connection.getConnector().server.getBean(ErrorHandler.class); 254 message= StringUtil.replace(message, "&", "&amp;");
256 if (error_handler!=null) 255 message= StringUtil.replace(message, "<", "&lt;");
257 { 256 message= StringUtil.replace(message, ">", "&gt;");
258 request.setAttribute(RequestDispatcher.ERROR_STATUS_CODE,new Integer(code)); 257 }
259 request.setAttribute(RequestDispatcher.ERROR_MESSAGE, message); 258 String uri= request.getRequestURI();
260 request.setAttribute(RequestDispatcher.ERROR_REQUEST_URI, request.getRequestURI()); 259 if (uri!=null)
261 error_handler.handle(null,_connection.getRequest(),_connection.getRequest(),this ); 260 {
262 } 261 uri= StringUtil.replace(uri, "&", "&amp;");
263 else 262 uri= StringUtil.replace(uri, "<", "&lt;");
264 { 263 uri= StringUtil.replace(uri, ">", "&gt;");
265 setHeader(HttpHeaders.CACHE_CONTROL, "must-revalidate,no-cache,no-store"); 264 }
266 setContentType(MimeTypes.TEXT_HTML_8859_1); 265
267 ByteArrayISO8859Writer writer= new ByteArrayISO8859Writer(2048); 266 writer.write("<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\"/>\n");
268 if (message != null) 267 writer.write("<title>Error ");
269 { 268 writer.write(Integer.toString(code));
270 message= StringUtil.replace(message, "&", "&amp;"); 269 writer.write(' ');
271 message= StringUtil.replace(message, "<", "&lt;"); 270 if (message==null)
272 message= StringUtil.replace(message, ">", "&gt;"); 271 message=HttpStatus.getMessage(code);
273 } 272 writer.write(message);
274 String uri= request.getRequestURI(); 273 writer.write("</title>\n</head>\n<body>\n<h2>HTTP ERROR: ");
275 if (uri!=null) 274 writer.write(Integer.toString(code));
276 { 275 writer.write("</h2>\n<p>Problem accessing ");
277 uri= StringUtil.replace(uri, "&", "&amp;"); 276 writer.write(uri);
278 uri= StringUtil.replace(uri, "<", "&lt;"); 277 writer.write(". Reason:\n<pre> ");
279 uri= StringUtil.replace(uri, ">", "&gt;"); 278 writer.write(message);
280 } 279 writer.write("</pre>");
281 280 writer.write("</p>\n<hr /><i><small>Powered by Jetty://</small></i>");
282 writer.write("<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\"/>\n"); 281
283 writer.write("<title>Error "); 282 for (int i= 0; i < 20; i++)
284 writer.write(Integer.toString(code)); 283 writer.write("\n ");
285 writer.write(' '); 284 writer.write("\n</body>\n</html>\n");
286 if (message==null) 285
287 message=HttpStatus.getMessage(code); 286 writer.flush();
288 writer.write(message); 287 setContentLength(writer.size());
289 writer.write("</title>\n</head>\n<body>\n<h2>HTTP ERROR: "); 288 writer.writeTo(getOutputStream());
290 writer.write(Integer.toString(code)); 289 writer.destroy();
291 writer.write("</h2>\n<p>Problem accessing ");
292 writer.write(uri);
293 writer.write(". Reason:\n<pre> ");
294 writer.write(message);
295 writer.write("</pre>");
296 writer.write("</p>\n<hr /><i><small>Powered by Jetty://</small></i>");
297
298 for (int i= 0; i < 20; i++)
299 writer.write("\n ");
300 writer.write("\n</body>\n</html>\n");
301
302 writer.flush();
303 setContentLength(writer.size());
304 writer.writeTo(getOutputStream());
305 writer.destroy();
306 }
307 } 290 }
308 else if (code!=SC_PARTIAL_CONTENT) 291 else if (code!=SC_PARTIAL_CONTENT)
309 { 292 {
310 _connection.getRequestFields().remove(HttpHeaders.CONTENT_TYPE_BUFFER); 293 _connection.getRequestFields().remove(HttpHeaders.CONTENT_TYPE_BUFFER);
311 _connection.getRequestFields().remove(HttpHeaders.CONTENT_LENGTH_BUFFER); 294 _connection.getRequestFields().remove(HttpHeaders.CONTENT_LENGTH_BUFFER);