DRP——Servlet(一)
Servlet
Servlet是用java语言编写的程序,执行在Webserver上,用来处理来自client的请求;通常会把处理的结果以HTML的形式返回,在client形成动态网页。事实上能够理解成一个中间层。负责连接前后。用三层理解的话相当于是业务逻辑层。
那么,Servlet有什么长处呢?Servlet执行在server中。能够扩展server的功能。能够和其它资源交互,从而生成返回client响应的内容,由于是用java编写的,所以能够跨平台;Servlet也非常安全,由于訪问Servlet的唯一途径就是通过server;Servlet使用也非常方便,仅仅要是符合Servlet规范的Servlet容器都能够执行Servlet。比方Tomcat啊等。
Servlet体系结构:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2FuZ2xpeDFhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
Servlet的生命周期:
1.创建Servlet对象。通过server反射机制创建Servlet对象,第一次请求时才会创建。(默认)
2.调用Servlet对象的init()方法,初始化Servlet的信息。init()方法仅仅会在创建后被调用一次
3.响应请求,调用service()或者是doGet(),doPost()方法来处理请求。这些方法是执行的在多线程状态下的。
4.在长时间没有被调用或者是server关闭时,会调用destroy()方法来销毁Servlet对象。
Servlet容器
事实上,Servlet本身就是普通的java类。在须要的时候被实例化,在不须要的时候被销毁。而Servlet的实例化和销毁工作谁来负责呢?Servlet容器来完毕。所以用要Servlet,则Servlet容器不可缺少。Servlet在Servlet容器内执行。Servlet容器负责调度Servlet,并控制Servlet的生命周期。我们经常使用的有Tomcat等。。。
以下分析一下Servlet容器调用Servlet的流程;首先client使用浏览器提交对Servlet的调用的Get或Post请求,server接到请求后,假设Servlet是第一次调用就实例化这个Servlet。之后server调用Servlet的service()方法,Servlet产生动态回复内容;server发送回复内容给client的浏览器。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2FuZ2xpeDFhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
配置文件
要想容器能正确识别Servlet。须要配置web.xml文件,以下我们看一下怎样配置:
一般格式:
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>标签内的name写Servlet的名称;class写Servlet的路径;<Servlet-mapping>标签帮助找到Servlet。url-pattern是訪问时的路径。Servlet-mapping与Servlet标签下的servlet-name要一致。
当然除了主要的配置。还能够进行其它配置,比方优先级、显示名称等等。
比較:
大家看到servlet能想到.NET中的什么呢?没错。好像是不太能想到什么。就勉强联想到一般处理程序吧。
当然他们有非常多不同的地方,但还是有类似的地方,事实上Servlet相当于是.NET中的一个详细的handler。能够对指定的请求进行处理。一般处理程序实现IHandler接口。
总结:
Servlet事实上就是执行在server端的小应用程序;Servlet容器负责调度Servlet,并控制着他们的生命周期。一般通过继承HttpServlet的方式来实现Servlet。依据client请求的方式,仅仅需重写doGet或doPost方法就可以,假设是Get提交须要在Servlet中重写doGet方法,假设是Post提交须要重写doPost方法;要使容器正确识别Servlet,则必须填写配置文件web.xml(tomcat7.0支持Servlet3.0注解定义,无需配置web.xml)。
ps:不足之处,敬请指正~~~
最新文章
- SVN强制退出,出现被锁的情况解决方法
- Windows 2008 R2 安装 Windows phone 7 开发环境
- ShareDrop – 苹果 AirDrop 服务的 HTML5 实现
- iOS开发小技巧--即时通讯项目:使用富文本在UILabel中显示图片和文字;使用富文本占位显示图片
- 二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素
- iOS Outlets Referencing Outlets
- 【AT91SAM3S】英蓓特EM-SAM3S开发板例子工程中的启动文件分析
- 【数位统计】之【spoj1433 KPSUM】
- java利用反射绕过私有检查机制实行对private、protected成员变量或方法的访问
- 快递查询api(多接口方案)
- Apache Mina 2.x 框架+源码分析
- vector如何进行局部排序
- Unity3DGUI:Window
- 推荐两个好用的Xcode插件(提供下载链接)
- freemarker配置,使用
- 在windows环境下利用virtualenv搭建Python虚拟环境
- python 爬虫之爬取大街网(思路)
- ArcGIS中CGCS2000投影坐标数据转CGCS2000地理坐标数据
- BZOJ3490 : Pa2011 Laser Pool
- webstorm和intellij idea下如何自动编译sass和scss文件