尽管还有许多烦心的事还没做,尽管还有许多思路没有理清,但我还是先把今天所学总结一下吧,对自己也有个交代,
也希望我的学习经验对看到这篇文章的初学java的爱好者们有所帮助,其实java web开发的内容自己早在两年前已经学过
,也用Servlet+jsp+javabean做过一些小型的诸如BBS、课程管理系统之类的提不起的小项目,但由于也只是很久没练了,
很多知识点似乎在大脑"内存"里被重写了一样,只有少量的记忆刻在了大脑"硬盘"里,好了废话也不多讲了,其实java web
开发的这些知识点也就那么些,我也没必要把所有的知识点全部罗列在此,我只能凭我的感觉把一些值得注意的地方提出来,
再系统的做一下总结,我想这样要比简单的告诉你有哪些知识点重要的多。
Servlet是java web开发的基础,对后面学习理解Struts框架有很好的帮助,所以一定要重视Servlet的学习,Servlet由
Servlet的容器Tomcat来管理,我们要做的是编写自己的Servlet来处理客户端的请求,自己编写的Servlet必须继承实现了Servlet
接口的诸如HttpServlet之类的类,Servlet容器的生命周期是必须要参透的:下面就来总结一下Servlet的生命周期(这里讲的是
Servlet已经被实例化好了),其实就是下面这三个方法
1、init
2、service
3、destroy
现在作如下分析:
一、Tomcat 加载 Servlet 并且实例化,有两种方法:
一种是根据 web.xml中 <load-on-startup>0</load-on-startup> 的配置,在Tomcat 一启动的时候就加载,并同时实例化,并马上调用 其 init( ) 方法,完成初始化过程。
第二种就是动态的加载,根据客户端的请求 URL 如: http://localhost:8080/accp/reqrep 中的accp/reqrep
去在 web.xml 中寻找指定的 Servlet 类,加载它并实例化,马上调用其 init( ) 方法完成初始化,由于是来自客户端的一个请求,那么自然要 调用 doGet( ) 方法来处理请求。
二、 Servlet 的初始化 ,即init( ) 方法是优于其它所有方法之前的,在处理任何响应之前就会调用的,并且在一个生命周期中有且只有一次!
Tomcat 一旦加载 Servlet ,实例化,就将其保存在内存中,以后不管多少次来自于客户端的请求都是由保存在Tomcat 容器池(即内存)里面的 Servlet 实例来处理,它不是开启了一个进程,而是实现了多线程操作,这也就是为什么要引用 Servlet 而不用 CGI 的优点。这个证据就是 我已经在 C:\apache-tomcat-5.5.20\webapps\ROOT\WEB-INF\classes 路径下删除了 这两个 Servlet .class 文件,但是请求一样处理,这就能证明,Tomcat 完成类加载是将他们保存在内存中,以便以后使用,效率很高。
三、.doGet( ) 和 doPost( ) 到底是怎么样来的,为什么没有 Service( ) 方法,里面的流程是什么?
上面只说明了 init( ) 有关的东西,现在来说 doGet( ) 和 doPost( ) ,
当Tomcat 容器收到一个消息,用户请求一个Servlet ,那么就生成了一个响应头,其实就是 HttpServletRequest 对象,根据 url 指定的 Servlet ,Tomcat 就让此 Servlet 来处理这个请求。
那么我们在 Java程序中其实实现的就是 HttpServelt ,重写了 doGet( ) 或者doPost( ) 方法,就可以处理这个请求了。但是 doGet( ) 或者 doPost( ) 方法是由 Service( ) 来调用的,我们怎么不重写Service( ) 方法呢?那是因为HttpServlet 继承了GenericServlet ,而GenericServlet 实现了Servlet 接口。在其中的一个类中,它的 Service( ) 其实就已经解析了 来自于 Http 请求头的内容,根据请求行的 method 来决定调用 doGet( ) 或者 doPost( ) 方法,同时把 HttpServletRequest 和 HttpServletResponse 以参数的形式传递给 doGet( ) 或者doPost( ),来进行我们的业务处理。
如果重写 Service( ) 方法,那么里面的很多工作可能就需要我们完成,其实这并不需要,我们只需要重写 doGet( ) 或者 doPost( ) 方法就可以了。这个重写的动作就是Servlet 生命周期中的 Service( ) 方法,里面调用了 doGet( ) 或者doPost( ) 方法。
四、处理请求结束,生成响应回发,销毁实例
处理请求结束,生成响应回发,这个在我上面所提到的文章里已经讲的很清楚了。
至于销毁实例 ,完成 destroy( ) 动作,一是只要把 tomcat 服务关闭就可以了。另外还有一种能实现 destroy( ) 的方法,可能是 Tomcat 里面的一些小BUG ,我正在找证据,已经发现一些端倪,今天有事暂时不写。重点就是前面的内容了。
Servlet的配置我就不在此啰嗦了,相当简单
分享到:
相关推荐
Java Web开发技术Servlet与JSP
Java.Web开发 JSP Servlet. Struts Spring Hibernate Ajax
主要为大家详细介绍了java web开发之servlet中图形验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...
java开发包servlet.jarjava开发包servlet.jarjava开发包servlet.jarjava开发包servlet.jarjava开发包servlet.jarjava开发包servlet.jarjava开发包servlet.jarjava开发包servlet.jar
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+...
主要内容包括:Tomcat和Java Web开发的基础知识、Java Web开发的高级技术、在Java Web应用中运用第三方提供的实用软件(如Struts、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。 书中内容注重理论与实践相...
由于Java Web技术是SUN公司在Java Servlet规范中提出的通用技术,因此《Tomcat与Java Web开发技术详解》讲解的Java Web应用例子可以运行在任何一个实现了SUN的Servlet规范的Java Web服务器上。随书附赠光盘的内容为...
《Java Web开发完全掌握》主要内容简介:java是目前最受欢迎、应用最为广泛的跨平台程序设计语言之一。全书详细讲解了java web开发的相关技术知识,主要包括javascript、jsp、javabean、表达式语言(el)、jsp标签库...
鑫编写的《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用》共分4篇,从XML、XML Schema、XSLT、Servlet、JSP和应用的角度向读者展示了Java Web开发中各种技术的应用,循序渐进...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
《Java Web开发技术大全--JSP+Servlet+Struts 2+Hibernate+Spring+AJAX》.(李宁),适合java web开发者,学生,老师,或者已经工作的。内容详细全面,高清
初学 Java Web 开发,请远离各种框架,从 Servlet 开发
《Java Web开发基础——从Servlet到JSP》源代码v1.0
完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java...
Java Web开发技术大全光盘文件,由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01)、java web 开发技术大全光盘文件(part02)、java web 开发技术大全光盘文件(part03)、java web 开发...
对于初学者了解java web开发的入门教材。
Java Web开发技术大全光盘文件,由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01)、java web 开发技术大全光盘文件(part02)、java web 开发技术大全光盘文件(part03)、java web 开发...