Servlet技术的自我理解之三:Servlet运行原理及Servlet的加载实例化

来源:互联网 发布:java课程设计小游戏 编辑:程序博客网 时间:2024/05/17 23:30

Servlet是Java编写的Server端程序,可以扩展服务器的能力,并采用请求-响应模式提供WEB服务

【注】:要区分Servlet、JavaScript、Java Applet三者的区别。

(1)Servlet是运行在服务器端的程序,能够改动服务器的能力的,你牛逼的话可以改写Tomcat7.0,让它更强大

(2)JavaScript是运行在客户端浏览器中的脚本程序,就是网页上的内容

(3)Java Applet是运行在客户端的小程序,像QQ、酷狗音乐什么的


1、Servlet的运行原理

首先明确一点,Servlet是在容器中进行管理的,这里的容器就是Tomcat 7.0

当WEB服务器收到一个请求时,它会先判断是请求内容的性质:动态还是静态?

(1)静态:WEB服务器直接自己处理了,产生响应的响应信息

(2)动态:WEB服务器将请求转交给Servlet容器(Tomcat 7.0),容器找到该Servlet实例进行处理,结果送回WEB服务器,再传回客户端


【注】:针对同一个Servlet,Servlet容器(Tomcat 7.0)会在第一次收到HTTP请求时建立一个Servlet实例,启动一个线程;第二次收到HTTP请求时,无须建立相同的Servlet实例,而是启用第二个线程,多线程处理方式哦!


2、Servlet容器建立Servlet实例并实现的具体过程

Servlet生命周期由接口javax.servlet.Servlet定义,具体内容可查API帮助文件,它提供了service、init和destroy方法,具体的生命周期如下图:



具体的Servlet实例化需要时间和一些配置,现在开始详细说~~

1、首先你新建一个Dynamic Web Project吧,以前的版本我不知道,反正现在的Java WEB开发都是在这么个工程里完成的,名字么,随便你,我只是个测试,就叫fIrstjsp吧。。。



2、工程创建后,目录里基本是这么个情况,你主要看这么Java Resources和WebContent两个文件夹



3、在WEB容器中完成Servlet实例化,需要做的是以下三件事:

--首先进行相关的Servlet配置,

--然后从该配置文件中读出该Servlet类的初始化参数,设置到ServletConfig实例中

--最后把该实例传递给Servlet实例中的init()方法。。。

(1)给Servlet配置初始化参数

在WebContent/WEB-INF目录下新建一个web.xml,为什么这样做,参考Tomcat 7.0服务器的Servlet配置文件路径你就明白了~~


接着你需要的就是对该xml配置文件进行一番关于Servlet的一系列配置,参考Tomcat7.0的配置文件你会有不小的收获~~,具体代码如下:


(2)完成ServletConfig的初始化

ServletConfig接口提供了getInitParameter()实现

在src文件下创建一个包,然后在该包下新建一个名为InitParamServlet的java类,在这里完成HTTP GET 或者是POST方法~~


具体代码如下:


(3)之后,你就可以进行你的第一个FirstServlet的测试了~~

这里创建了一个FirstServlet类,来继承HttpServlet,并重写了doGet()和doPost()方法,为的是通透Servlet的基本原理,具体代码如下~~


然后你就可以run了,跑下看看,这样,你对Servlet的请求-响应过程就算熟悉了~~


0 0
原创粉丝点击