tomcat 错误页面设置

以前开发的时候,一直没错处理错误页面的问题,如果tomcat报错,就直接把错误的信息打印出来,找不到地址的时候就直接给出一个404错误,因为做的项目一直是没有上线的,所以,一直没有留意过这个问题,所以今天要记录一下错误的页面的指定。

error-page元素就是用来克服这些问题的。

//放置于web.xml末尾处
<error-page>
</error-page>

它有两个可能的子元素,分别是:

<error-code>
//错误码
</error-code>
<location>
//指出在给定的HTTP错误代码出现时使用的URL
</location>

<exception-type>
//Java异常
</exception-type>
<location>
//指出在给定的HTTP错误代码出现时使用的URL
</location>

下面给出使用事例
http://www.plinko.net/404/ (全球错误页面)
元素一使用实例:

<error-page>

<error-code>404</error-code>

<location>/NotFound.jsp</location>

</error-page>

元素二使用实例:

<error-page>

<exception-type>packageName.className</exception-type>

<location>/SomeURL</location>

</error-page>

————–2017年4月更新—————-
如果要自己通过控制器进行控制可以在location里面填入自己的控制器的地址,然后在控制器里面通过request.getAttributeNames()获取相关信息

如下实例:

web.xml

<error-page>
<error-code>400</error-code>
<location>/error/handle</location>
</error-page>

controller

@Controller
@RequestMapping("/error")
public class ErrorController extends BaseController {

    @RequestMapping("/handle")
    public ResponseEntity<Map<String, Object>> handle(HttpServletRequest request) {
        Enumeration<String> attributeNames = request.getAttributeNames();
        while (attributeNames.hasMoreElements()) {
            String attributeName = attributeNames.nextElement();
            Object attribute = request.getAttribute(attributeName);
            System.out.println("request.attribute['" + attributeName + "'] = " + attribute);
        }
        return null;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 Window7 我是在Win7上做的。不是什么Linux,网上好多资料,特别麻烦。 Nginx Nginx 比较好找到,直接去网上下载 网址: http://nginx.org/en/download.html 版本不作要求了,(比如1.2.9版本),都有。 JDK JAVA的各种环境都要有。 版本不要求 Tomcat 这里我给大家提供tomcat6 Tomcat各种版本的下载地址我也提供给大家:http://tomcat.apache.org/download-60.cgi 大家可以先用我tomcat6 学会了,在下载自己需要的版本。 词条科普 另外我把实现过程中遇到的知识点都总结好了,一起提供给大家学习。 步骤: 注:本例程以一台win7机器为例子,即同一台机器上装一个nginx和2个Tomcat。 且安装了JDK。 便于管理将用到的资料放在一个文件夹下 我在D盘 创建 server 文件夹 . 1. Nginx 下载直接解压缩到server,点nginx.exe 执行 安装后如果可用,可在任务管理其中找到如图类似,并且在浏览器中输入 http://localhost/ 浏览器显示如下两个图 说明成功 2.Tomcat 同样将自己下载的或者我提供的tomcat 放到D盘的server下不过要复制成两份或者多份。 命名如:(便于区别 我们只用两个来讲解 ,多个tomcat和两个原理是一样的) 1、server.xml配置 我们需要在一台机器上跑 2 个不同的 tomcat ,避免出现端口被占用的情况,为了规范统一,我们修改全部tomca端口。分别找到tomcat6的1和2 的conf下的 server.xml。 修改Server端口 找到Server将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8005和8006; 2.1.2、修改Connector端口 找到Connector将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8081和8082; 2.1.3、修改Engine端口 找到Engine将: 改为 tomcatX 在这里表示不同的tomcat,我的两个 tomcat 分别使用 tomcat1和tomcat2;来区分。 这个设置是主要用以tomcat的集群。 如果看不懂可以去看我提供的tomcat我已经改好了。 启动tomcat服务 分别到两个tomcat下,直接双击D:\server\apache-tomcat-6.0.39_1\bin\startup.bat启动tomcat1 D:\server\apache-tomcat-6.0.39_2\bin\startup.bat启动tomcat2 出现以下页面表示启动成功 在浏览器中输入 http://localhost:8081 http://localhost:8082 出现 标示成功 3、Nginx+Tomcat负载均衡配置 首先创建两个文件,这两个文件 我来提供,将这两个文件拷入Nginx的conf文件夹下 1.proxy.conf 文件内容 #负责代理转发 proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_
一.环境变量配置 ; 定义系统环境变量的 注册表key值 !define WriteEnvStr_RegKey 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"' ;设置环境变量 Function "regExpandStr" SetOverwrite ifnewer ;设置jdk环境变量 WriteRegExpandStr ${WriteEnvStr_RegKey} "JAVA_HOME" "$INSTDIR\jdk1.8.0_131" ;设置CATALINA_DIR WriteRegExpandStr ${WriteEnvStr_RegKey} "CATALINA_DIR" "$INSTDIR\tomcat\bin" ;设置CATA_LINA WriteRegExpandStr ${WriteEnvStr_RegKey} "CATA_LINA" "$INSTDIR\tomcat" ;设置path ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$0;C:\windows\system32;$INSTDIR\redis;$INSTDIR\mysql\bin;$INSTDIR\Java\jdk1.8.0_131\bin;" #第一次是使环境变量修改对其他进程有效;刷新环境变量 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 SetOverwrite on functionend ;注册服务 Function "installService" detailprint "------------------------------------install tomcat Service..." Sleep 2000 SetOutPath "$INSTDIR\tomcat\bin" nsExec::Exec 'cmd /c service install' nsExec::Exec 'cmd /c sc config tomcat8 start= auto' ;设置服务自动开启 detailprint "------------------------------------install tomcat Service success..." detailprint "install mysql Service..." Sleep 2000 SetOutPath "$INSTDIR\mysql\bin" nsExec::Exec 'cmd /c $INSTDIR\mysql\bin\mysqld.exe" -install Mysql --defaults-file="$INSTDIR\\mysql\\my.ini' detailprint "install mysql Service success..." detailprint "------------------------------------install redis Service..." Sleep 2000 SetOutPath "$INSTDIR\redis" nsExec::Exec 'cmd /c redis-server --service-install redis.windows.conf' detailprint "install redis Service success..." functionend ; 启动服务 Function "startService" detailprint "------------------------------------start tomcat..." nsExec::Exec 'cmd /c sc start Tomcat8' detailprint "------------------------------------start tomcat success..." detailprint "------------------------------------start mysql..." nsExec::Exec 'cmd /c sc start mysql' detailprint "------------------------------------start MySQL success..." detailprint "------------------------------------start redis..." ;nsExec::Exec 'cmd /c sc redis-server --service-start --service-name redis' detailprint "------------------------------------start redis success..." functionend ;停止服务 Function "un.stopService" detailprint "正在停止tomcat服务......." nsExec::Exec 'cmd /c sc stop tomcat8' detailprint "停止tomcat服务成功......." detailprint "正在停止mysql服务......." nsExec::Exec 'cmd /c sc stop mysql' detailprint "停止mysql服务成功......." detailprint "正在停止redis服务......." nsExec::Exec 'cmd /c sc redis-server --service-stop --service-name redis' detailprint "停止redis服务成功......." functionend ;删除服务 Function "un.uninstService" detailprint "正在卸载tomcat服务......." nsExec::Exec 'cmd /c sc delete tomcat8' detailprint "卸载tomcat服务成功......." detailprint "正在卸载mysql服务......." nsExec::Exec 'cmd /c sc delete mysql' detailprint "卸载mysql服务成功......." detailprint "正在卸载redis服务......." nsExec::Exec 'cmd /c sc delete redis' detailprint "卸载redis服务成功......." functionend ;清空环境变量 Function "un.emptyRegExpandStr" #删除 系统环境变量JAVA_HOME 和 CATALINA_HOME #卸载的时候必须设置JAVA_HOME 和 CATALINA_HOME两个环境系统变量为空,或者删除这两个系统变量。否则会出现NSIS选择系统变量的错误(NSIS会自动选择之前有值的系统变量,而不是选择当前刚设置的系统变量) detailprint "正在删除相关环境变量......." functionend 二.校验mac地址 #序列号 校验页面 Page custom check_serial_number Var "MacAddress" Function check_serial_number Call .GetMacAddress #MessageBox MB_OK '当前机器Mac地址为:$MacAddress' ${if} $MacAddress == '00-50-56-C0-00-08' ${OrIf} $MacAddress == '00-50-56-C0-00-081' #MessageBox MB_OK '已授权' ${Else} MessageBox MB_OK '未授权,请联系经销商并授权!' ;SendMessage $HWNDPARENT 0x408 3 0 #页面跳转 Call onClickClose ${EndIf} FunctionEnd #获取主机MAC地址 Function .GetMacAddress System::Call Iphlpapi::GetAdaptersInfo(i,*i.r0) System::Alloc $0 Pop $1 System::Call Iphlpapi::GetAdaptersInfo(ir1r2,*ir0)i.r0 StrCmp $0 0 0 finish loop: StrCmp $2 0 finish System::Call '*$2(i.r2,i,&t260;.s,&t132;.s,i.r5)i.r0' ;Unicode版将t改为m IntOp $3 403 + $5 StrCpy $6 "" ${For} $4 404 $3 IntOp $7 $0 + $4 System::Call '*$7(&i1;.r7)' IntFmt $7 "X" $7 StrCpy $6 "$6$7" StrCmp $4 $3 +2 StrCpy $6 "$6-" ${Next} StrCpy $MacAddress $6 Goto loop finish: System::Free $1 FunctionEnd 三.关闭按钮功能 ;点击右上角关闭按钮 Function onClickClose FindProcDLL::FindProc "${PRODUCT_NAME}.exe" Sleep 500 Pop $R0 ${If} $R0 != 0 KillProcDLL::KillProc "${PRODUCT_NAME}.exe" ${EndIf} FunctionEnd
Tomcat Web服务器安全配置基线 中国移动通信有限公司 管理信息系统部 2012年 04月 "版本 "版本控制信息 "更新日期 "更新人 "审批人 " "V1.0 "创建 "2009年1月 " " " "V2.0 "更新 "2012年4月 " " " " " " " " " " " " " " " 备注: 1. 若此文档需要日后更新,请创建人填写版本控制表格,否则删除版本控制表格。 目 录 第1章 概述 4 1.1 目的 4 1.2 适用范围 4 1.3 适用版本 4 1.4 实施 4 1.5 例外条款 4 第2章 帐号管理、认证授权 5 2.1 帐号 5 2.1.1 共享帐号管理* 5 2.1.2 无关帐号管理* 5 2.2 口令 6 2.2.1 密码复杂度 6 2.2.2 密码生存期 7 2.3 授权 7 2.3.1 用户权利指派* 7 第3章 日志配置操作 9 3.1 日志配置 9 3.1.1 审核登录 9 第4章 IP协议安全配置 10 4.1 IP协议 10 4.1.1 支持加密协议* 10 第5章 设备其他配置操作 11 5.1 安全管理 11 5.1.1 定时登出 11 5.1.2 错误页面处理 11 5.1.3 目录列表访问限制 12 第6章 评审与修订 14 1. 概述 目的 本文档规定了中国移动通信有限公司管理信息系统部门所维护管理的Tomcat WEB服务器应当遵循的安全性设置标准,本文档旨在指导系统管理人员进行Tomcat WEB服务器的安全配置。 适用范围 本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。 本配置标准适用的范围包括:支持中国移动集团公司管理信息系统部运行的Tomcat Web 服务器系统。 适用版本 4.x、5.x、6.x版本的Tomcat Web服务器。 实施 本标准的解释权和修改权属于中国移动集团管理信息系统部,在本标准的执行过程中 若有任何疑问或建议,应及时反馈。 本标准发布之日起生效。 例外条款 欲申请本标准的例外条款,申请人必须准备书面申请文件,说明业务需求和原因,送 交中国移动通信有限公司管理信息系统部进行审批备案。 2. 帐号管理、认证授权 帐号 1. 共享帐号管理* "安全基线项"Tomcat共享帐号管理安全基线要求项 " "目名称 " " "安全基线编"SBL-Tomcat-02-01-01 " "号 " " "安全基线项"应按照用户分配帐号。避免不同用户间共享帐号。避免用户帐 " "说明 "号和设备间通信使用的帐号共享。 " "检测操作步"1、参考配置操作 " "骤 "修改tomcat/conf/tomcat-users.xml配置文件,修改或添加帐 " " "号。 " " "<user username="tomcat" password=" Tomcat!234" " " "roles="admin"> " " "2、补充操作说明 " " "1、根据不同用户,取不同的名称。 " " "2、Tomcat 4.1.37、5.5.27和6.0.18这三个版本及以后发行的 " " "版本默认都不存在admin.xml配置文件。 " "基线符合性"1、判定条件 " "判定依据 "各帐号都可以登录Tomcat Web服务器为正常 " " "2、检测操作 " " "访问http://ip:8080/manager/html管理页面,进行Tomcat服务" " "器管理 " "备注 "手工检查 " 2. 无关帐号管理* "安全基线项"Tomcat无关帐号管理安全基线要求项 " "目名称 " " "安全基线编"SBL-Tomcat-02-01-02 " "号 " " "安全基线项"应删除或锁定与设备运行、维护等工作无关的帐号。 " "说明 " " "检测操作步"1、参考配置操作 " "骤 "修改tomcat/conf/tomcat-users.xml配置文件,删除与工作无 " " "关的帐号。 " " "例如tomcat1与运行、维护等工作无关,删除帐号: " " "<user username="tomcat1" password="tomcat" " " "roles="admin"> " "基线符合性"1、判定条件 " "判定依据 "被删除的与工作无关的帐号tomcat1不能正常登陆。 " " "2、检测操作 " " "访问http://ip:8080/manager/html管理页面,使用删除帐号进" " "行登陆尝试。 " "备注 "手工检查 " 口令 1. 密码复杂度 "安全基线项"Tomcat密码复杂度安全基线要求项 " "目名称 " " "安全基线编"SBL-Tomcat-02-02-01 " "号 " " "安全基线项"对于采用静态口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值