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:不足之处,敬请指正~~~

DRP——Servlet(一)的更多相关文章

  1. 【drp 9】Servlet生命周期

    一.基本概念 Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet ...

  2. 【DRP】-完成物料修改页面Servlet和JSP开发

    本系列博客内容为:做DRP系统中的常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责:1.业 ...

  3. Java Drp项目实战——Servlet

    由来 在解说Servlet之前须要先介绍一个词语CGI即Common GatewayInterface是通用网关接口的意思.它提供一个计算机程序同HTTP协议或者WWW服务的接口,也就是人机交互接口的 ...

  4. [drp 7]转发和重定向的区别

    导读:类似于response.sendRedirect(request.getContextPath()+"/servlet/item/SearchItemServlet");和r ...

  5. DRP PK 牛腩新闻发布系统

    一.JSP与ASP (1)Web服务器的支持:大多数通用的Web服务器如:Apache.Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Pers ...

  6. DRP学习进化模型

    曾经做的就是按照思维做的三级制,这是U .B ,D .坐在坐,开始增加设计模式,增加sqlhelper ,逐渐了解系统可分为只三层,层的,随着学习的不断深入明确了"为什么会出现分层" ...

  7. DRP项目总结

    DRP项目在6号就已经完工了,总共花费了一个半月的时间,从对java的懵懵懂懂,到现在的略微熟悉,对整个java web开发的认知,清晰了很多.涉及到的web项目开发的必备知识,也都有一次得到锻炼和提 ...

  8. 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)

    在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...

  9. JAVA Drp项目实战—— Unable to compile class for JSP 一波三折

    交代下背景.电脑系统是64位的,用的是64位的Tomcat.安装是32位的Myeclipse10,java环境也是32位的.Tomcat在開始启动时会报这样一个错误,"Can't load ...

随机推荐

  1. 域用户允许更改IP地址

    1.在DC上设置不好使. 2.需在本地用户组里添加到network.......组里. 注意:有的时候,连接不到DC上,是由于DNS的事,需要先去掉不必要的dns地址. 添加完后,需要重启或注销. 另 ...

  2. Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0

    今天在真机调试低版本系统的时候出现如题类似Layout Max Width在ios 8 之前不适用的问题, 初步估计是autolayout 所导致的 查找资料解决方法如下: 将label下Preffe ...

  3. c++,命名空间(namespace)

    1.什么是命名空间: 命名空间:实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来. 2.命名空间 ...

  4. NET Core全新的开发体验

    NET Core全新的开发体验 2016年6月27日,这是一个特殊的日子,微软全新的.NET开发平台.NET Core的RTM版本正式发布.我个人将.NET Core的核心特性归结为三点,它们的首字母 ...

  5. SUP (SAP Mobile SDK 2.2) 连接 Sybase SQL Anywhere sample 数据库

    安装了   SAP Mobile SDK 2.2   后发现,这个版本没有自带Sybase SQL Anywhere  数据库. 解决办法: 1. 免费下载 SQL Anywhere Develope ...

  6. OGR SQL

    The OGRDataSource supports executing commands against a datasource via the OGRDataSource::ExecuteSQL ...

  7. Sublime 脚本 配置 (lua 和 JavaScript篇)

    { "cmd" :["C:/Lua/Lua.exe","$file"], "file_regex" :"^(? ...

  8. AFNetworking2.5使用2

    链接地址:http://blog.csdn.net/abc4715760/article/details/46521111 官网下载2.5版本:http://afnetworking.com/ 此文章 ...

  9. linux学习过程中所需要看的一些书籍

    入门类 一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用.鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这 ...

  10. Visual Studio 2012的新技术特性

    前言 我更换了VS2012开发工具,那么它有什么特性呢? [caption id="attachment_1235" align="alignnone" wid ...