一、Servlet简介

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

二、Servlet接口

(1)init(ServletConfig config) 方法

被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。

(2)service(ServletRequest req, ServletResponse res)方法

是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

(3)destroy() 方法

destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

(4)getServletConfig()方法

获取init方法传入的Servlet配置ServletConfig。

(5)getServletInfo() 方法

提供有关servlet的信息,如作者、版本、版权。

三、GenericServlet抽象类

(1)实现接口

Servlet、 ServletConfig

(2)定义属性

transient ServletConfig config

(3)新增方法

a.init()方法

增加了init无参方法,此方法在Servlet接口的init(ServletConfig config) 方法中调用。

b.log(String msg)方法与log(String message, Throwable t)

打印日志

(4)继承Servlet的方法

a.service(ServletRequest req, ServletResponse res)方法仍然是抽象方法

b.init(ServletConfig config) 方法保存ServletConfig,然后调用无参的init()方法

c.getServletInfo() 方法返回长度为0的字符串

d.destroy() 方法空实现

e.getServletConfig()方法返回config

(5)继承ServletConfig的方法

通过config获取ServletContext、ServletName以及ServletContext的InitParameter和InitParameterNames

四、HttpServlet抽象类

(1)继承父类

GenericServlet

(2)新增方法

a.doGet(HttpServletRequest req, HttpServletResponse resp)方法

处理http的get方式的请求

b.doPost(HttpServletRequest req, HttpServletResponse resp)方法

处理http的post方式的请求

c.service(HttpServletRequest req, HttpServletResponse resp)方法

由Servlet接口的service(ServletRequest req, ServletResponse res)方法调用,分发请求到对应的请求方式

d.getLastModified(HttpServletRequest req) long 方法

获取最后一次的请求时间

e.doDelete、doHead、doOptions、doPut和doTrace等不常用方法

五、自定义servlet处理http请求

(1)一般继承自HttpServlet

(2)覆盖doGet方法与doPost方法

六、配置serlvet

(1)定义servlet

在web.xml中定义

[html] view plaincopy
  1. <servlet>
  2. <servlet-name>MyServlet</servlet-name>
  3. <servlet-class>com.mk.MyServlet</servlet-class>
  4. </servlet>

(2)映射servlet

在web.xml中定义

[html] view plaincopy
  1. <servlet-mapping>
  2. <servlet-name>MyServlet</servlet-name>
  3. <url-pattern>/welcome</url-pattern>
  4. </servlet-mapping>

Java Servlet总结相关推荐

  1. java servlet html文件_Servlet生成html页面

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容. 该Se ...

  2. java servlet applet,详解Java Servlet与Applet比较

    Java Servlet与Applet相似之处: ◆它们不是独立的应用程序,没有main()方法. ◆它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用. ◆它们都有一个生存周期,包含in ...

  3. java servlet 多线程_Servlet的多线程和线程安全

    线程安全 首先说明一下对线程安全的讨论,哪种情况我们可以称作线程安全? 网上对线程安全有很多描述,我比较喜欢<Java并发编程实战>给出的定义,"当多个线程访问某个类时,不管运行 ...

  4. jsp java 登陆_jsp+java servlet实现简单用户登录

    jsp+java servlet实现简单用户登录(使用数据库,包括注册页面) 功能介绍 本项目通过使用jsp和servlet实现简单的用户登录.主要逻辑为:如果用户不存在,则首先进行注册(注册信息同步 ...

  5. 第三章 Java Servlet基础

    第三章 Java Servlet基础 3.6.2 转发 1.获得RequestDispatcher对象 2.RequestDispatcher对象调用forward()方法实现转发 请求转发工作原理 ...

  6. Java Servlet完全教程

    本文来自Java Servlet完全教程 Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广 ...

  7. Java Servlet工作原理问答

    导读 本文来自stackoverflow的问答,讨论了Java Servlet的工作机制,如何进行实例化.共享变量和多线程处理. 问题:Servlet是如何工作的?Servlet 如何实例化.共享变量 ...

  8. Java Servlet关键点详解

    Java Servlet关键点详解 1.理解Servlet的生命周期 Servlet引擎控制着Servlet的生命周期 Servlet的生命周期由以下三个方法进行描述(五个生命周期阶段) 1)初始化 ...

  9. [转]Java——Servlet的配置和测试

    本文转自:http://blog.csdn.net/makefish/article/details/6904807 本文以一个实例介绍如何用Java开发Servlet. 主要内容有: 配置和验证To ...

  10. java flex 上传文件_使用Flex和java servlet上传文件

    资源都是来自网上.本实例将展示使用Flex和java servlet上传文件. 事前准备就是到http://commons.apache.org 下载common-fileupload-1.1.1.j ...

最新文章

  1. 《你不可不知的50个建筑学知识》之哥特式建筑
  2. RedisManager使用手册(六)-- 监控功能介绍
  3. 云信私有化方案中如何搭建高可用的日志和监控平台?
  4. C++和Rust_【Rust水群夜话】盘点Rust 官方团队2019年进展
  5. sql两个时间计算时间差_Java 8时间类,越用越香
  6. dpkg ihr状态_考勤机数据无法同步
  7. 利用session防止表单重复提交
  8. “练好内功坚持被集成”,阿里云发布SaaS加速器
  9. ID的权限问题导致免密码登录失效
  10. pythonenumapi_python模块之enum_上
  11. 如何固定电脑ip地址
  12. day21-2 类的派生
  13. JS网页恶搞代码,不断弹出、关不掉的对话框
  14. 2017年12月19-20日 阿里云 飞天/智能 云栖大会-北京峰会 会议笔记
  15. 【GAMES101】作业3 Pipeline and Shading
  16. java 吸血鬼数字_JAVA_吸血鬼数字 多种方法实现
  17. 博客设计展示:25个优秀博客设计
  18. 利用xposed自动获得支付宝个人收款二维码链接和收款记录
  19. 阿里入股新浪微博:动机与前景分析
  20. 手机沙盒隔离软件_虚拟隔离沙箱|隔离沙箱(BufferZone Pro)下载 v4.07 免费版 - 121下载站...

热门文章

  1. 高等数学下-赵立军-北京大学出版社-题解-练习9.1
  2. 用来表示python代码块的是什么_三分钟带你用简单的Python代码深入理解Python中的元类...
  3. 调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...
  4. Spring Cloud——Eureka——架构体系
  5. ICPC 徐州 H Yuuki and a problem (树状数组套主席树)
  6. 【APIO2018】Duathlon 铁人两项 【圆方树】
  7. CF1516E. Baby Ehab Plays with Permutations(组合数学)
  8. Sum of Paths CodeForces - 1467D
  9. 模板:二维凸包(计算几何)
  10. P4169 [Violet]天使玩偶/SJY摆棋子(CDQ分治、暴力)