Просмотр исходного кода

zheng-oss-web完善错误页面

shuzheng 9 лет назад
Родитель
Сommit
544d373ed5

+ 4 - 0
zheng-oss/zheng-oss-web/src/main/resources/i18n/messages_en_US.properties

@@ -0,0 +1,4 @@
+403=Access forbidden!
+404=Page not found!
+500=Internal server error!
+error=Server error!

+ 4 - 0
zheng-oss/zheng-oss-web/src/main/resources/i18n/messages_zh_CN.properties

@@ -0,0 +1,4 @@
+403=\u6CA1\u6709\u6743\u9650\uFF01
+404=\u9875\u9762\u6CA1\u6709\u627E\u5230\uFF01
+500=\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF\uFF01
+error=\u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF\uFF01

+ 18 - 0
zheng-oss/zheng-oss-web/src/main/resources/log4j.properties

@@ -0,0 +1,18 @@
+#off/fatal/error/warn/info/debug/all
+log4j.debug=false
+log4j.rootLogger=info, stdout
+
+# Console output
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
+
+#Spring logging configuration
+log4j.category.org.springframework = warn
+
+#Druid logging configuration
+log4j.logger.druid.sql=warn,stdout
+log4j.logger.druid.sql.DataSource=warn,stdout
+log4j.logger.druid.sql.Connection=warn,stdout
+log4j.logger.druid.sql.Statement=warn,stdout
+log4j.logger.druid.sql.ResultSet=warn,stdout

+ 14 - 0
zheng-oss/zheng-oss-web/src/main/resources/springMVC-servlet.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:mvc="http://www.springframework.org/schema/mvc"
+	xsi:schemaLocation="
+        http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/mvc
+        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
+
+	<!-- 根目录'/'对应页面 -->
+	<mvc:view-controller path="/" view-name="/index"/>
+
+</beans>

+ 17 - 0
zheng-oss/zheng-oss-web/src/main/webapp/WEB-INF/jsp/403.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title><spring:message code="403"/></title>
+</head>
+<body>
+403
+</body>
+</html>

+ 17 - 0
zheng-oss/zheng-oss-web/src/main/webapp/WEB-INF/jsp/404.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title><spring:message code="404"/></title>
+</head>
+<body>
+404
+</body>
+</html>

+ 43 - 0
zheng-oss/zheng-oss-web/src/main/webapp/WEB-INF/jsp/500.jsp

@@ -0,0 +1,43 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title><spring:message code="500"/></title>
+</head>
+<body>
+<center style="margin:50px auto">
+	<p>错误代码:500<%//=request.getAttribute("javax.servlet.error.status_code")%></p>
+	<p>您访问的页面有错误!</p>
+	<p>错误原因:${error.message}</p>
+	<p>错误内容:${error}</p>
+	<p><!--页面将在<span id="stime">5</span>秒后-->跳转到<a href="${pageContext.request.contextPath}/">首页</a>!</p>
+</center>
+<%
+/**
+监控出错人的IP
+String ip = request.getHeader(" x-forwarded-for");
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getHeader(" Proxy-Client-IP"); // 获取代理ip
+}
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getHeader(" WL-Proxy-Client-IP"); // 获取代理ip
+}
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getRemoteAddr(); // 获取真实ip
+}
+//out.println(ip+"<br/><br/>你的地址是:<br/><br/>");
+
+Document doc = Jsoup.connect("http://ip.chinaz.com/?IP="+ip).timeout(9000).get();
+Element e = doc.select("#status").first();
+//out.println(e);
+*/
+%>
+</body>
+</html>

+ 17 - 0
zheng-oss/zheng-oss-web/src/main/webapp/WEB-INF/jsp/error.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title><spring:message code="error"/></title>
+</head>
+<body>
+error
+</body>
+</html>

+ 17 - 0
zheng-oss/zheng-oss-web/src/main/webapp/WEB-INF/jsp/index.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8"/>
+    <title>首页</title>
+</head>
+<body>
+<a href="${basePath}/manage">后台首页</a>
+</body>
+</html>

+ 82 - 6
zheng-oss/zheng-oss-web/src/main/webapp/WEB-INF/web.xml

@@ -1,7 +1,83 @@
-<!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         version="2.5">
 
-<web-app>
-  <display-name>Archetype Created Web Application</display-name>
-</web-app>
+    <!-- 强制进行转码 -->
+    <filter>
+        <filter-name>CharacterEncodingFilter</filter-name>
+        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
+        <init-param>
+            <param-name>encoding</param-name>
+            <param-value>UTF-8</param-value>
+        </init-param>
+    </filter>
+    <filter-mapping>
+        <filter-name>CharacterEncodingFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+        <dispatcher>REQUEST</dispatcher>
+        <dispatcher>FORWARD</dispatcher>
+    </filter-mapping>
+
+    <!-- 默认的spring配置文件是在WEB-INF下的applicationContext.xml -->
+    <listener>
+        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+    </listener>
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>
+            classpath*:applicationContext*.xml
+        </param-value>
+    </context-param>
+
+    <!-- 日志配置文件 -->
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>classpath:log4j.properties</param-value>
+    </context-param>
+
+    <!-- springMVC的核心控制器 -->
+    <servlet>
+        <servlet-name>springMVC</servlet-name>
+        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+        <init-param>
+            <param-name>contextConfigLocation</param-name>
+            <param-value>classpath*:springMVC-servlet.xml</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>springMVC</servlet-name>
+        <url-pattern>/</url-pattern>
+    </servlet-mapping>
+
+    <!-- session配置 -->
+    <session-config>
+        <session-timeout>30</session-timeout>
+    </session-config>
+
+    <!-- 欢迎页面 -->
+    <welcome-file-list>
+        <welcome-file>index.html</welcome-file>
+        <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+
+    <!-- 错误页面 -->
+    <error-page>
+        <error-code>403</error-code>
+        <location>/WEB-INF/jsp/403.jsp</location>
+    </error-page>
+    <error-page>
+        <error-code>404</error-code>
+        <location>/WEB-INF/jsp/404.jsp</location>
+    </error-page>
+    <error-page>
+        <error-code>500</error-code>
+        <location>/WEB-INF/jsp/500.jsp</location>
+    </error-page>
+    <error-page>
+        <exception-type>java.lang.Throwable</exception-type>
+        <location>/WEB-INF/jsp/error.jsp</location>
+    </error-page>
+</web-app>