defaulterrorhandler.java

来自「一个简单的java邮件系统源码」· Java 代码 · 共 58 行

JAVA
58
字号
package com.easyjf.web.errorhandler;

import java.io.PrintWriter;
import java.io.StringWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.velocity.exception.MethodInvocationException;

import com.easyjf.web.Page;
import com.easyjf.web.WebForm;

public class DefaultErrorHandler implements IErrorHandler {

	public Page handle(HttpServletRequest request,
			HttpServletResponse response, WebForm form, Throwable e) throws ServletException{		
		try {
			StringBuffer html = new StringBuffer();
			String title = request.getCharacterEncoding() != null ? "EasyJWeb框架错误"
					: "EasyJWeb Framework error";
			html.append("<html>\n");
			html.append("<head><title>" + title + "</title></head>\n");
			html.append("<body>\n");
			html.append(title + ":\n<br>");
			Throwable cause = e;
			String why = cause.getMessage();
			html.append("<font color=red>");
			if (why != null && why.trim().length() > 0) {
				html.append(why);
				html
						.append("\n<br>详细请查询<a href='http://www.easyjf.com/' target='_blank'>http://www.easyjf.com</a>\n");
			}
			if (cause instanceof MethodInvocationException) {
				cause = ((MethodInvocationException) cause)
						.getWrappedThrowable();
			}
			html.append("</font>");

			StringWriter sw = new StringWriter();
			cause.printStackTrace(new PrintWriter(sw));
			html.append("<pre>\n");
			html.append(sw.toString());
			html.append("</pre>\n");
			html.append("</body>\n");
			html.append("</html>");
			if (request.getCharacterEncoding() != null)
				response.setContentType("text/html; charset="
						+ request.getCharacterEncoding());
			response.getWriter().write(html.toString());
		} catch (Exception e2) {
			throw new ServletException(e);
		}
		return null;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?