| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" %>
- <%@include file="/common/taglibs.jsp"%>
- <%@ page import="java.io.PrintWriter"%>
- <%@ page import="java.io.StringWriter"%>
- <%@ page import="java.net.InetAddress"%>
- <%@ page import="java.util.Enumeration"%>
- <%@ page import="org.slf4j.Logger"%>
- <%@ page import="org.slf4j.LoggerFactory"%>
- <%response.setStatus(200);%>
- <%
- pageContext.setAttribute("ctx", request.getContextPath());
- Throwable ex = null;
- if (exception != null) {
- ex = exception;
- }
- if (request.getAttribute("javax.servlet.error.exception") != null) {
- ex = (Throwable) request.getAttribute("javax.servlet.error.exception");
- }
- //记录日志
- Logger logger = LoggerFactory.getLogger("500.jsp");
- String requestInfo = "";
- try {
- StringBuilder buff = new StringBuilder();
- buff.append(InetAddress.getLocalHost())
- .append("\n");
- buff.append("Header....\n");
- Enumeration<String> e = request.getHeaderNames();
- String key;
- while(e.hasMoreElements()){
- key = e.nextElement();
- buff.append(key)
- .append("=")
- .append(request.getHeader(key))
- .append("\n");
- }
- buff.append("Attribute....\n");
- e = request.getAttributeNames();
- while(e.hasMoreElements()){
- key = e.nextElement();
- buff.append(key)
- .append("=")
- .append(request.getAttribute(key))
- .append("\n");
- }
- buff.append("Parameter....\n");
- e = request.getParameterNames();
- while(e.hasMoreElements()){
- key = e.nextElement();
- buff.append(key)
- .append("=")
- .append(java.util.Arrays.asList(request.getParameterValues(key)))
- .append("\n");
- }
- requestInfo = buff.toString().replaceAll("<", "<");
- } catch(Throwable t) {
- logger.error("fetch request info error", t);
- }
- logger.error(requestInfo, ex);
- %>
- <!doctype html>
- <html lang="en">
- <head>
- <%@include file="/common/meta.jsp"%>
- <title>500 - <spring:message code="core.500.error" text="系统内部发生错误"/></title>
- <link href="${ctx}/s/bootstrap/css/bootstrap.min.css" rel="stylesheet">
- <link href="${ctx}/s/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
- <script type="text/javascript" src="${ctx}/s/jquery/jquery.min.js"></script>
- <script type="text/javascript">
- $(function() {
- $('#targetContentDiv').height($(window).innerHeight() - 150);
- })
- </script>
- <style type="text/css">
- #targetContentDiv {
- background-color: #b8b8b8;
- padding: 70px 0 80px;
- text-align: center;
- }
- #targetContentDiv h1 {
- font-size: 120px;
- letter-spacing: -2px;
- line-height: 1;
- }
- #targetContentDiv p {
- font-size: 40px;
- font-weight: 200;
- line-height: 1.25;
- font-weight: bold;
- padding: 10px;
- }
- #targetContentDiv li {
- display: inline;
- list-style: none outside none;
- }
- </style>
- </head>
- <body>
- <div id="targetContentDiv">
- <div class="container">
- <h1>500</h1>
- <p><spring:message code="core.500.error" text="系统内部发生错误"/></p>
- <ul>
- <li><a class="btn btn-primary" href="${ctx}/"><spring:message code="core.500.back" text="返回首页"/></a></li>
- <li><a class="btn" href="javascript:void(0);" onclick="">联系管理员</a></li>
- <li><a class="btn" href="javascript:void(0);" onclick="$('#output').show();$('#targetContentDiv').hide();">显示详情</a></li>
- </ul>
- </div>
- </div>
- <div id="output" style="display:none">
- <div style="text-align:center;" class="container">
- <a class="btn btn-info container" href="javascript:void(0);" onclick="$('#output').hide();$('#targetContentDiv').show();">返回</a>
- </div>
- <pre>
- <%=requestInfo%>
- <hr>
- <%
- StringWriter writer = new StringWriter();
- ex.printStackTrace(new PrintWriter(writer));
- out.println(writer.toString());
- %>
- </pre>
- </div>
- </body>
- </html>
|