diff --git a/modules/core/src/main/resources/views/error/403.html b/modules/core/src/main/resources/views/error/403.html
new file mode 100644
index 00000000..8110e30d
--- /dev/null
+++ b/modules/core/src/main/resources/views/error/403.html
@@ -0,0 +1,43 @@
+<%
+@servlet.getResponse().setStatus(400);
+
+var message = @ObjectUtils.toString(@request.getAttribute("message"));
+
+if (isBlank(message)){
+ var ex = @ExceptionUtils.getThrowable(request);
+ if (ex != null){
+ if(@StringUtils.startsWith(@ex.getMessage(), "msg:")){
+ message = @StringUtils.replace(@ex.getMessage(), "msg:", "");
+ }
+ }
+}
+
+if (isBlank(message)){
+ message = "您的操作权限不足!";
+}
+
+// 如果是异步请求或是手机端,则直接返回信息
+if (@ServletUtils.isAjaxRequest(request)) {
+ print(message);
+}
+
+// 输出异常信息页面
+else {
+%>
+<% layout('/layouts/default.html', {title: '403 - 操作权限不足'}){ %>
+
+
+
403
+
+
${message}
+
很抱歉,您没有权限访问此页面,若有疑问请联系管理员。
+
+
+
+ <% var productName = @Global.getConfig('productName'), productVersion = @Global.getConfig('productVersion'); %>
+ 版权所有 © ${@DateUtils.getYear()} ${productName} - Powered By
JeeSite.
+
+
+<% } %>
+<% } %>
\ No newline at end of file
diff --git a/modules/core/src/main/resources/views/error/404.html b/modules/core/src/main/resources/views/error/404.html
new file mode 100644
index 00000000..a74eb2f2
--- /dev/null
+++ b/modules/core/src/main/resources/views/error/404.html
@@ -0,0 +1,50 @@
+<%
+@servlet.getResponse().setStatus(404);
+
+var message = @ObjectUtils.toString(@request.getAttribute("message"));
+
+if (isBlank(message)){
+ message = "您访问的页面不存在!";
+}
+
+// 下载文件不存在的异常,状态码设为正常
+if (message == '文件已丢失或不存在!'){
+ @servlet.getResponse().setStatus(200);
+}
+
+// 如果是异步请求或是手机端,则直接返回信息
+if (@ServletUtils.isAjaxRequest(request)) {
+ print(message);
+}
+
+// 输出异常信息页面
+else {
+%>
+<% layout('/layouts/default.html', {title: '404 - 页面不存在'}){ %>
+
+
404
+
+
${message}
+
可能是如下原因引起的这个错误:
+
+ - 地址输入错误,链接已经失效过期.
+ -
+ 您访问的地址为:${
+ @EncodeUtils.escapeHtml(
+ @request.getAttribute('javax.servlet.forward.request_uri')
+ )
+ }
+ - 若有疑问请联系管理员.
+ - ......
+
+
+
+
+ <% var productName = @Global.getConfig('productName'), productVersion = @Global.getConfig('productVersion'); %>
+ 版权所有 © ${@DateUtils.getYear()} ${productName} - Powered By
JeeSite.
+
+
+<% } %>
+<% } %>
\ No newline at end of file
diff --git a/modules/core/src/main/resources/views/error/500.html b/modules/core/src/main/resources/views/error/500.html
new file mode 100644
index 00000000..892f37a2
--- /dev/null
+++ b/modules/core/src/main/resources/views/error/500.html
@@ -0,0 +1,53 @@
+<%
+@servlet.getResponse().setStatus(500);
+
+var message = @ObjectUtils.toString(@request.getAttribute("message"));
+
+var ex;
+if (isBlank(message)){
+ ex = @ExceptionUtils.getThrowable(request);
+ if (ex != null){
+ if (@StringUtils.startsWith(@ex.getMessage(), "msg:")){
+ message = @StringUtils.replace(@ex.getMessage(), "msg:", "");
+ }else if (ex.class.name == 'com.jeesite.common.service.ServiceException'){
+ message = @ex.getMessage();
+ }
+ @org.slf4j.LoggerFactory.getLogger("error/500").error(ex.message, ex);
+ }
+}
+
+if (isBlank(message)){
+ message = "您访问的页面出错啦!";
+}
+
+// 如果是异步请求或是手机端,则直接返回信息
+if (@ServletUtils.isAjaxRequest(request)) {
+ print(message);
+}
+
+// 输出异常信息页面
+else {
+%>
+<% layout('/layouts/default.html', {title: '500 - 系统内部错误'}){ %>
+
+
500
+
+
${message}
+
对不起,你访问的页面出现了一点问题,请及时联系管理员解决!
+
+
+
+ <% var productName = @Global.getConfig('productName'), productVersion = @Global.getConfig('productVersion'); %>
+ 版权所有 © ${@DateUtils.getYear()} ${productName} - Powered By
JeeSite.
+
+
+<% if (@ObjectUtils.toBoolean(@Global.getConfig('error.page.printErrorInfo', 'true'))){ %>
+