编程经验系列,第1张

编程经验系列,第2张

最后正式进入J2ee的细节。Servlet和JSP当然是第一种。如前一篇文章所述,J2ee只是一个规范和指南,它定义了一组必须遵循的接口。核心概念是组件和容器。有人曾经问过Servlet的类文件是从哪里来的。他以为是J2ee官方提供的,我举了一个简单的反例:我稍微查了一下Tomcat5.0中的Servlet.jar文件和JBoss中的Servlet.jar文件的大小,很明显是不一样的。至少已经证明了他们不是同根生的。实际上,Servlet是由容器根据J2ee的接口定义自己来实现的,实现的方式当然可以不同,只要它们都符合J2ee规范和准则。
以上只是大家普遍的误解。它告诉我们,如果我们想要编译和运行一个Servlet,它依赖于实现它的容器。否则,没有jar文件我们就无法编译它。Jsp呢?Java Server Page的缩写,是为开发动态网页而诞生的技术。它的本质也是Jsp,写完之后容器启动的时候会编译成相应的Servlet。只是我们可以通过使用Jsp的很多新特性来更加专注于前景和背景的分离,早期的Jsp做前景是很流行的。毕竟它支持Html代码,可以让前端美工更高效的完成工作。然后Jsp将请求转发给后台的Servlet,Servlet处理业务逻辑,然后将请求转发回另一个Jsp以在前台显示。这似乎已经成为一种普遍的模式。当我第一次学习J2ee时,我花了很多时间来编写这样的代码。
虽然现在前台的技术越来越多,比如Flash,Ajax等。,很多人不再认为Jsp重要。我觉得JSP带来的不仅仅是前端分离的设计理念,还有Jsp的另一项技术成就了我们今天使用的很多框架,那就是标签技术。所以与其学习Jsp,不如更明确的告诉自己,你在不断的理解Tag标签的含义和本质。
1。servlet和JSP的生命周期
servlet是JSP的本质,尽管容器对它们的处理不同。Servlet init()方法用于初始化,service()方法用于Web服务,destroy()方法用于销毁。从出生到死亡,容器都会掌握这些方法,所以除非你想自己实现Servlet,否则很少接触这些方法。正因为很少接触,所以容易被新手忽略。我希望你至少能记住Servlet生命周期方法是回调方法。这个回调的概念就是简单的把自己注入到另一个类中,它会调用你的方法。所谓另一类就是Web容器,只知道接口和接口方法。无论注入什么样的对象,都只会根据需要调用这个对象存在于接口定义中的那些方法。容器调用的Servlet对象的初始化、服务和销毁方法称为回调。这个概念对于学习其他J2ee技术至关重要!
JSP呢?Servlet是技能,或者说有一些区别,它的生命周期如下:
a)一个客户端的请求到达服务器-->
b)判断是否第一次被调用-->如果是,将Jsp编译成Servlet
c)如果不是,判断这个Jsp是否有变化-->如果是,将Jsp重新编译成Servlet
D)加载最新版本的Servlet所需的其他类已经编译好。e)发布Servlet,即调用其Service()方法
。所以Jsp号称第一次加载慢,以后运行快。从它的生命周期不难看出这个特点。客户端的操作很少改变Jsp的源代码,所以不需要二次编译就可以一直为客户端提供服务。这里,我稍微解释一下Http的无状态本质,因为很多人发现它被误解了。Http的无状态特性意味着每次显示页面时,与服务器的连接实际上是断开的。当再次有提交动作时,它将再次与服务器连接以请求服务。当然,更流行的技术是Ajax通过xml与服务器的异步交互,这在前台领域有很大的潜力。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 编程经验系列

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情