谁可相欹 发表于 2015-1-18 11:29:58

JAVA教程之能够主动跳转到堕落页面的servlet/jsp框...

自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。js|servlet|页面|主动跳转jsp有一个指令能够界说jsp的毛病页面,并在此jsp页面堕落时跳转到该页面输入堕落
日记。以下的例子:
<%@pageerrorPage="errorPage.jsp"%>
errorPage.jsp的代码以下所示:
.....
<%@pageisErrorPage="true"%>
....
//输入堕落日记
<%=exception.getMessage()%>

可是,这只能在jsp页面层把持。在J2EE的完成中,良多的情形是jsp常常只作为页面显
示,与营业相干的数据库操纵都是在背景的servlet实行,处置终了以后再跳转某个jsp显现
页面。这类设置框架,完成了MVC布局,使得全部体系的保护难度年夜年夜下降。

实践的事情中,只管体系接纳了以上的设置框架,但由J2EE开辟职员程度和编程的习
惯都有大概欠亨,常常会碰到开辟职员在servlet中对有大概报错的中央处置不得当。最常
见的一种情形是,catch一个Exceptione,然后仅仅挪用e.printStackTrace()。如许形成
的成果十分严峻。一旦有Exception产生,web页面会呈现白屏,我们能够从两方面来看:
(1)假如是利用的用户。他常常会手足无措,而且有大概还不晓得有毛病产生,持续利用
体系,但这时候候的体系已堕落了,在毛病的基本上持续营业流程,常常会形成更多体系级
其余毛病。
(2)假如是开辟职员。用户反应了这个堕落,可是不晓得堕落缘故原由。只能说呈现要白屏。
开辟职员必要调试抓错的话,非失掉使用服务器的输出端检察堕落日记,定位大概堕落的原
因,再举行排错。

在此,我先容一种无效的servlet堕落处置机制,这类机制将一切Exception的堕落内容
抛出到web页面,让利用用户当即有毛病产生,并能够实时将该堕落内容提交给开辟职员定
位堕落缘故原由。
实在,这类机制十分复杂。思绪是界说一个笼统的BaseServlet基类,它承继HttpServlet。
并增添一个笼统的abstractpublicvoiddoWorkFlow(HttpServletRequestrequest,HttpServletResponseresponse)
的办法,这个办法是一切BaseServlet子类都必需且仅需完成的办法。BaseServlet基类固然要完成service办法--publicfinalvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)
。它的代码片段以下:
publicfinalvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
try{
//在实行doWorkFlow()之前,你能够在此处置是不是有权限处置等成绩
.......
doWorkFlow();
}catch(Exceptione){
StringWriterout=newStringWriter();
e.printStackTrace(newPrintWriter(out));
request.setAttribute("err_msg",out.toString());
RequestDispatcherrd=this.getServletContext().getRequestDispatcher("errorServlet.jsp");
rd.forward(request,response);
}
}

errorServlet.jsp十分复杂。代码片段以下:
....
//输入堕落日记
<%=request.getAttribute("err_msg")%>

一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。

深爱那片海 发表于 2015-1-20 11:22:00

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

爱飞 发表于 2015-1-29 06:56:47

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

谁可相欹 发表于 2015-2-3 07:14:27

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

灵魂腐蚀 发表于 2015-2-8 20:00:36

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

小女巫 发表于 2015-2-9 22:23:07

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

仓酷云 发表于 2015-2-13 16:55:10

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

分手快乐 发表于 2015-3-3 23:37:43

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

柔情似水 发表于 2015-3-6 01:21:36

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

admin 发表于 2015-3-8 13:30:09

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

变相怪杰 发表于 2015-3-10 12:45:02

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

飘灵儿 发表于 2015-3-17 07:08:33

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

兰色精灵 发表于 2015-3-24 00:38:20

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
页: [1]
查看完整版本: JAVA教程之能够主动跳转到堕落页面的servlet/jsp框...