Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序。指任何实现了这个Servlet接口的类或者实现Servlet接口的类,当然或者实现接口继承方法的的类。Servlet是一个特殊的Java类。

其实就是运行在服务器上的java类,但是没有main方法。servlet中的方法由服务器在相应情况下调用执行,比如Tomcat服务器上的servlet,当浏览器发出请求并且请求方式为GET时,被请求的servlet的doGet方法就会被Tomcat或者其他服务器调用执行。

因为这些服务器软件能监听http请求,解析http头信息,头信息里写有用户想看你的哪个页面,然后这些软件再打开你的程序对应的页面跑一下得出结果再返回给用户。
要是你写的web程序把这个监听的东西也写上,可以不用依赖tomcat等软件的,只要符合http协议的过程。tomcat也是完全有java编写而成的,由大量的类构成。

Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener)
Servlet是用来处理客户端请求的动态资源
Servlet的任务有:
获取请求数据
处理请求
完成响应

1.实现一个Servlet有三种方式

实现javax.servlet.Servlet接口;

继承javax.servlet.GenericServlet类;

继承javax.servlet.http.HttpServlet类;继承与javax.servlet.GeneticServlet

2.配置Servlet的主要标签

<servlet>

<servlet-name></servlet-name>

<servlet-class></servlet-class>

</servlet>

<servlet-mapping>

<servlet-name></servlet-name>

<url-pattern></url-pattern>

</servlet-mapping>

3.servlet的生命周期

实例化:服务器进行servlet的实例化(一次)Servlet是在第一次被访问时由服务器创建的。(通过配置文件 找到类,再通过反射机制,单例模式,创建唯一一个servlet对象)。

初始化:服务器调用servlet的init方法进行初始化。(一次)在Servlet被创建后,服务器会马上调用Servlet的void init(ServletConfig)方法。

请求的处理:服务器调用servlet的service方法,然后根据请求方式调用doXXX方法(多次)当服务器每次接收到请求时,都会去调用Servlet的service()方法来处理请求。

服务终止:服务器调用servlet的destroy方法销毁servlet实例。(一次)在服务器被关闭时,服务器会去销毁Servlet。

与servlet生命周期有关的三个方法

void init(ServletConfig);

  void service(ServletRequest,ServletResponse);

   void destroy();

4.servlet初始化参数的配置和使用

<servlet>

<init-param>

<param-name>key</param-name>

<param-value>value</param-value>

</init-param>

</servlet>

初始化参数的使用:

一般在Servlet的init方法中使用config对象的getInitParameter(String key)方法来获取初始化参数。

上下文参数的配置:

<web-app>

<context-param>

<param-name>key</param-name>

<param-value>value</param-value>

</context-param>

</web-app>

上下文参数的使用:

在Servlet中先通过getServletContext()方法获得ServletContext对象,然后调用

该对象的getInitParameter(String key)方法获得上下文参数。

6.高效率,线程不安全

servlet到底是什么?的更多相关文章

  1. servlet是什么?servlet到底是啥?

    #说实话 这个鬼servlet我听说过它好多年了,但是我真的不知道它到底是干啥用的.内心里总觉得这是个很复杂的,绝对是让人难以理解的东西,我真的感觉自己很抗拒它,不想知道,不想去了解.可是我还是不得不 ...

  2. Servlet到底是单例还是多例你了解吗?

    为一个Java Web开发者,你一定了解和学习过Servlet.或许还曾在面试中被问到过Servelt是单例还是多例这个问题. 遇到这个问题,你是否曾深入了解过,还是百度或者Google了一下,得到答 ...

  3. Servlet和JAVA BEAN 分析探讨

    在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean   />调用Jav ...

  4. 浅谈JavaWEB入门必备知识之Servlet入门案例详解

    工欲善其事.必先利其器,想要成为JavaWEB高手那么你不知道servlet是一个什么玩意的话,那就肯定没法玩下去,那么servlet究竟是个什么玩意?下面,仅此个人观点并通过一个小小的案例来为大家详 ...

  5. servlet与Javabean之间的区别

    在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean/>调用JavaBe ...

  6. 浅谈Tomcat和Servlet

    本文浅谈下对Tomcat和Servlet总体的理解,初学时有用过一段时间,但当时疲于应对如何xml配置和使用,对他们的理解就像是一个黑匣子.现在回顾一下帮助自己加深网络的理解.开始还是先推荐我看的文章 ...

  7. JavaWeb开发之详解Servlet及Servlet容器

    自JavaEE诞生伊始,Servlet容器和Servlet技术,就构成了JavaEE应用的核心,配合其它组件,它们完善了Java企业级开发的全套解决方案.小到一个静态博客网站,大到分布式的集群应用,都 ...

  8. 以登录实现理解Servlet+jsp+JavaBean开发

    写在前面:菜鸟拙见,望请纠正 学过servlet的都知道,书本上一直说servlet一直作为控制器使用,它不实现view层,也不做具体的事务处理,那servlet到底是干什么的哪?怎么合理的用它呐?? ...

  9. Web基础之Servlet

    Servlet Servlet : server applet,直译服务小程序.那Servlet到底是什么呢? Servlet说白了其实就是一个接口,接口的作用是什么?规范呗,这个接口规定了下面三个问 ...

随机推荐

  1. STL的迭代器和类型萃取

    今天就可以把STL库中迭代器的实现,和类型萃取好好整理一下了 迭代器的设计思维是STL的关键所在,在STL的实际运用和泛型思维,迭代器都扮演着十分重要的角色,STL力求把数据容器和算法的概念分开来,于 ...

  2. JSNO

    JSON 编辑 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了 ...

  3. 【洛谷P1196】银河英雄传说

    有特殊意义的一道题-- 加权并查集,我们增加cnt.deep数组 分别表示i点所在链共有多少个点,以及路径压缩之前点i在链中的深度 每次合并时直接修改cnt,路径压缩的同时更新deep 因为每次查询之 ...

  4. bzoj1179(Atm)

    ---恢复内容开始--- 1179: [Apio2009]Atm Time Limit: 15 Sec  Memory Limit: 162 MB Description Input 第一行包含两个整 ...

  5. C# 部分语法总结(入门经典)

    class Program { static void Main(string[] args) { init(); System.Console.ReadKey(); } #region 接口 /// ...

  6. Java学习笔记 06 数字格式化及数学运算

    一.数字格式化 DecimalFormat类 >>DecimalFormat是NumberFormat的子类,用于格式化十进制数,可以将一些数字格式化为整数.浮点数.百分数等.通过使用该类 ...

  7. iOS原生地图开发指南续——大头针与自定义标注

    iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/23 ...

  8. Eclipse JAVA项目的 目录结构 和 导入

    说明:本文所有测试以java工程为例: 1. Eclipse下的java工程目录 eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个workspace,也就 ...

  9. 我的github代码库

    我的github代码库地址:https://github.com/gooree.Enjoy coding,enjoy sharing.

  10. [转]c++中vector的使用

    C++中的vector使用范例 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简 ...