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的请求-响应过程就算熟悉了~~
- Servlet技术的自我理解之三:Servlet运行原理及Servlet的加载实例化
- Servlet的自我理解之4:URL重定向技术的原理与具体实现
- Servlet的自我理解之7:Servlet过滤器技术的具体实现
- servlet的运行原理
- Servlet的运行原理
- Servlet技术的自我理解之二:HTTP协议的深入理解
- Servlet的自我理解之6:ID会话跟踪技术的实现
- JSP应用的自我理解之三:JSP+Servlet实现表单验证
- 最基础的servlet自我理解
- Servlet加载和实例化的时间
- servlet的简介及运行
- 实例解析Servlet运行原理
- servlet的原理及过程
- Servlet技术的自我理解之一:WEB技术与HTTP协议
- javaee之Servlet的理解
- 一个简单的Servlet框架(帮助理解Servlet原理)
- Servlet技术(三)--JavaWeb与Servlet的生命周期
- 传智播客Servlet学习,Servlet的特点及运行过程
- Animation入门
- 浅谈拓扑排序
- MPC8313ERDB从内存启动Linux系统
- c++关于封装、接口的简单理解
- 数据库作业 大家忽略
- Servlet技术的自我理解之三:Servlet运行原理及Servlet的加载实例化
- MySQL优化方案
- Python doc v2.7.6 ------ 5.2.10.1. Generator-iterator methods
- 双向循环链表C++实现(完整版)
- java static 总结
- mongodb数据库备份
- Mina 在项目中的位置
- 关于php5连接sqlite的问题
- 四翼——硬件小结