快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记怡情博乐:可以自动跳转到出错页面的servletjsp框架



jsp有一个指和记怡情博乐令可以定义jsp的差错页面,并在此jsp页面掉足时跳转到该页面输出掉足

日志。如下的例子:

errorPage.jsp的代码如下所示:

.....

....

//输出掉足日志

然则,这只能在jsp页面层节制。在J2EE的实现中,很多的环境是jsp每每只作为页面显

示,与营业相关的数据库操作都是在后台的servlet履行,处置惩罚完毕之后再跳转某个jsp显示

页面。这种设置框架,实现了MVC布局,使得全部系统的掩护难度大年夜大年夜低落。

实际的事情中,只管系统采纳了以上的设置框架,但由J2EE开拓职员水平以及编程的习

惯都有可能不通,常常会碰到开拓职员在servlet中对有可能报错的地方处置惩罚不恰当。最常

见的一种环境是,catch一个Excepti和记怡情博乐on e,然后仅仅调用e.printStackTrace()。这样造成

的后果异常严重。一旦有Exception发生,web页面会呈现白屏,我们可以从两方面来看:

(1)假如是应用的用户。他每每会不知所措,并且有可能还不知道有差错发生,继承应用

系统,但这时刻的系统已经掉足了,在差错的根基上继承营业流程,每每会造成更多系统级

其余差错。

(2)假如是开拓职员。用户反应了这个掉足,然则不知道掉足缘故原由。只能说呈现要白屏。

开拓职员必要调试抓错的话,非获得利用办事和记怡情博乐器的输入端查看掉足日志,定位可能掉足的原

因,再进行排错。

在此,我先容一种有效的servlet掉足处置惩罚机制,这种机制将所有Exception的掉足内容

抛出到web页面,让应用用户急速有差错发生,并可以及时将该掉足内容提交给开拓职员定

位掉足缘故原由。

着实,这种机制异常简单。思路是定义一个抽象的BaseServlet基类,它承袭HttpServlet。

并增添一个抽象的 abstract public void doWorkFlow(HttpServletRequest request,HttpServletResponse response)

的措施,这个措施是所有BaseServlet子类都必须且仅需实现的措施。BaseServlet基类当然要实现service措施 -- public final void service(HttpServletRequest request,HttpServletResponse response)

。它的代码片断如下:

public final void service(HttpServletRequest request,HttpServletResponse response)

throws ServletException, IOException {

try{

//在履行doWorkFlow()之前,你可以在此处置惩罚是否有权限处置惩罚等问题

.......

doWorkFlow();

}catch(Exception e){

StringWriter out = new StringWriter();

e.printStackTrace(和记怡情博乐new PrintWriter(out));

request.setAttribute("err_msg", out.toString());

RequestDispatcher rd = this.getServletContext().getRequestDispatcher("errorServlet.jsp");

rd.forward(request,response);和记怡情博乐

}

}

errorServlet.jsp异常简单。代码片断如下:

....

//输出掉足日志

您可能还会对下面的文章感兴趣: