再见西城 发表于 2015-1-18 11:29:30

JAVA网站制作之Servlet运转周期与道理流程仓酷云

在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。1、Servlet运转周期
Servlet运转在Servlet容器中,其性命周期由容器来办理。Servlet的性命周期经由过程javax.servlet.Servlet接口中的init()、service()和destroy()办法来暗示。
Servlet的性命周期包括了上面4个阶段:
(1)加载和实例化
Servlet容器卖力加载和实例化Servlet。当Servlet容器启动时,大概在容器检测到必要这个Servlet来呼应第一个哀求时,创建Servlet实例。当Servlet容器启动后,它必需要晓得所需的Servlet类在甚么地位,Servlet容器能够从当地文件体系、远程文件系统大概其他的收集服务中经由过程类加载器加载Servlet类,乐成加载后,容器创立Servlet的实例。由于容器是经由过程Java的反射API来创立Servlet实例,挪用的是Servlet的默许机关办法(即不带参数的机关办法),以是我们在编写Servlet类的时分,不该该供应带参数的机关办法。
(2)初始化
在Servlet实例化以后,容器将挪用Servlet的init()办法初始化这个对象。初始化的目标是为了让Servlet对象在处置客户端哀求前完成一些初始化的事情,如创建数据库的毗连,猎取设置信息等。关于每个Servlet实例,init()办法只被挪用一次。在初始化时代,Servlet实例可使用容器为它筹办的ServletConfig对象从Web使用程序的设置信息(在web.xml中设置)中猎取初始化的参数信息。在初始化时代,假如产生毛病,Servlet实例能够抛出ServletException非常大概UnavailableException非常来关照容器。ServletException非常用于指明一样平常的初始化失利,比方没有找到初始化参数;而UnavailableException非常用于关照容器该Servlet实例不成用。比方,数据库服务器没有启动,数据库毗连没法创建,Servlet就能够抛出UnavailableException非常向容器指出它临时或永世不成用。
(3)哀求处置
Servlet容器挪用Servlet的service()办法对哀求举行处置。要注重的是,在service()办法挪用之前,init()办法必需乐成实行。在service()办法中,Servlet实例经由过程ServletRequest对象失掉客户真个相干信息和哀求信息,在对哀求举行处置后,挪用ServletResponse对象的办法设置呼应信息。在service()办法实行时代,假如产生毛病,Servlet实例能够抛出ServletException非常大概UnavailableException非常。假如UnavailableException非常唆使了该实例永世不成用,Servlet容器将挪用实例的destroy()办法,开释该实例。今后对该实例的任何哀求,都将收到容器发送的HTTP404(哀求的资本不成用)呼应。假如UnavailableException非常唆使了该实例临时不成用,那末在临时不成用的工夫段内,对该实例的任何哀求,都将收到容器发送的HTTP503(服务器临时忙,不克不及处置哀求)呼应。
(4)服务停止
当容器检测到一个Servlet实例应当从服务中被移除的时分,容器就会挪用实例的destroy()办法,以便让该实例能够开释它所利用的资本,保留数据到耐久存储设备中。当必要开释内存大概容器封闭时,容器就会挪用Servlet实例的destroy()办法。在destroy()办法挪用之后,容器会开释这个Servlet实例,该实例随后会被Java的渣滓搜集器所接纳。假如再次必要这个Servlet处置哀求,Servlet容器会创立一个新的Servlet实例。
在全部Servlet的性命周期过程当中,创立Servlet实例、挪用实例的init()和destroy()办法都只举行一次,现在始化完成后,Servlet容器会将该实例保留在内存中,经由过程挪用它的service()办法,为吸收到的哀求服务。

<br>
2、Servlet运转道理和流程
1.Servlet运转道理
①.WebApplication的尺度目次布局:
WEB-INF/classes
/lib
Web.xml
,也就是一个完全的web使用程序目次下,必需包括以上的目次布局。
Classes文件夹下是项目顶用到的类文件,均由JDK编译成了.class文件
Lib文件夹是我们项目中援用的jar包
Web.xml是全部web使用程序的设置文档。
懂得了这些,我们再来看Tomcat的事情流程。
②.Tomcat剖析URL
a)起首来看URL中包括的信息:”协定”+“端标语”+“路径(项目称号+文件路径)”
Tomcat启动后,监听我们的8080端口,当有Url哀求发过去以后,剖析进项目称号abingtest,然后到webapps目次下搜刮到该项目文件夹。
b)项目文件找到后,入手下手寻觅类文件。
这个时分Tomcat往Web.xml文件中寻觅<servlet-mapping>设置节中包括”servlet/FirstServlet”字符串,进而找到该类文件地点的地位。
③.Servelt中的doGet()和doPost()办法
我们写的FirstServlet承继了HttpServlet,重写了HttpServlet中的doGet()办法,HttpServlet中另有一个doPost()办法。这两个办法都是用来处置Http哀求的。Servlet会依据我们提交表单的办法(method=post/get)挪用service办法来主动选择(我们鄙人一篇文章中来具体申明一下Service办法是怎样主动挪用FirstServlet中的doGet()办法的)
2、一个servlet运转流程图:

<br>

windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的

简单生活 发表于 2015-1-21 07:50:34

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

若相依 发表于 2015-1-24 15:13:30

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

仓酷云 发表于 2015-1-31 07:41:45

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

深爱那片海 发表于 2015-2-6 18:28:33

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

飘灵儿 发表于 2015-2-18 02:01:24

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

小魔女 发表于 2015-2-22 05:33:47

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

乐观 发表于 2015-2-27 21:08:55

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

第二个灵魂 发表于 2015-3-9 13:59:29

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

灵魂腐蚀 发表于 2015-3-12 22:26:48

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

金色的骷髅 发表于 2015-3-15 23:17:24

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

若天明 发表于 2015-3-22 01:09:13

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

山那边是海 发表于 2015-3-25 15:40:48

是一种使用者不需花费很多时间学习的语言

老尸 发表于 2015-4-9 10:52:51

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

柔情似水 发表于 2015-4-15 03:37:29

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

因胸联盟 发表于 2015-4-21 16:05:26

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

再现理想 发表于 2015-5-1 02:11:09

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

再见西城 发表于 2015-6-5 13:24:20

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

爱飞 发表于 2015-6-7 21:26:38

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

谁可相欹 发表于 2015-6-20 23:43:29

是一种语言,用以产生「小应用程序(Applet(s))
页: [1]
查看完整版本: JAVA网站制作之Servlet运转周期与道理流程仓酷云