核心提示:对错误页的一个跳转处理(防止恶意刷链接进行攻击等)在实际的j2ee项目中,系统内部难免会出现一些异常,如果把异常放任不管直接打印到浏览器可能会让用户感觉莫名其妙,也有可能让某些攻击者找到破解系统的方法...
对错误页的一个跳转处理(防止恶意刷链接进行攻击等)
在实际的j2ee项目中,系统内部难免会出现一些异常,如果把异常放任不管直接打印到浏览器可能会让用户感觉莫名
其妙,也有可能让某些攻击者找到破解系统的方法。
发现网上一基(大)础(神)文章:拿spring+struts2+hibernate项目说明:通常一个页面请求到后台以后,首先是到
action(也就是所谓mvc的controller),在action层会调用业务逻辑service,servce层会调用持久层DAO获取数据。
最后执行结果会汇总到action,然后通过action控制转发到指定页面,执行流程如下图所示:

而这三层其实都有可能发生异常,比如DAO层可能会有SQLException,Service可能会有NullPointException,Action
可能会有IOException,一旦发生异常并且程序员未做处理,那么该层不会再往下执行,而是向调用自己的方法抛出
异常,如果Dao、Service、Action层都未处理异常的话,异常信息会抛到服务器,然后服务器会把异常直接打印到页
面,结果就会如下图所示:

其实这种错误对于客户来说毫无意义,因为他们通常是看不懂这是什么意思的。
刚学Java的时候,我们处理异常通常两种方法:①直接throws,放任不管;②写try...catch,在catch块中不作任何操
作,或者仅仅printStackTrace()把异常打印到控制台。第一种方法最后就造就了上图的结果;而第二种方法更杯具:
页面不报错,但是也不执行用户的请求,简单的说,其实这就是bug(委婉点:通常是这样)!