Servlets对web 服务的重要性

在展现层框架大行其道的今天,Servlet与JSP这2个重要的JAVA WEB标准实现已经被人逐渐的遗忘了,对于初学者来说,对于Servlet与JSP一般更是抱以不削的态度,其实伟大的展现层框架的作者也是对Servlet与JSP进行了更好的封装,在Servlet与JSP中添加各种设计模式,来形成更容易使用的MVC框架,要想学好JAVA WEB,Servlet与JSP是重中之重,必须要熟透Servlet与JSP才能进入JAVA WEB的殿堂,也只有熟悉了Servlet与JSP才能进行更高级别的JAVA学习,为企业级JAVA打好基础。

Java Servlets 是一种有效且强大的在web端生成动态内容的方式。在过去的几年里,Sevelets已成为主流的java服务器端开发的基础组成部分。推动Servlets的力量来自于java平台和Sevelets容器。java平台为 Servlest开发者提供了强大的API,面向对象编程、平台中立、严格类型、垃圾收集以及JVM的所有安全特性。更赞的是,Servlets容器提供生命周期管理,单线程分享、管理应用端资源与wbe服务器端进行交互。这一功能也让Servlets成为java服务端开发者理想的技术。

web 应用

servlet总是称为Web应用程序的大型项目的一部分。Web应用程序是网站资源的完整集合。没有什么可以阻止Web应用程序由零个、一个或多个Servlet组成,但是Servlet容器根据每个Web应用程序管理Servlet。Web应用程序及其配置文件由Servlet规范指定。

Servlets 和 HTTP Servlets

Servlet规范的主要目的是定义一种健壮的机制,用于将内容发送到由客户机/服务器模型定义的客户机。servlet最常用于在Web上生成动态内容,并且对HTTP有本地支持。

过滤器

过滤器是在Servlet2.3规范中正式引入的。过滤器提供了一种抽象的方法,在客户端的请求和/或响应到达请求的端点之前对其进行操作。过滤器极大地补充了servlet,通常用于身份验证、内容压缩和日志记录。

安全

Servlet已经使用了Java虚拟机提供的安全特性,但是Servlet规范还定义了一种机制来控制对Web应用程序中资源的访问。

国际化

Servlet最好的特性之一是能够为几乎任何语言开发内容。这个功能的很大一部分直接来自于Java平台对国际化和本地化的支持。ServletAPI保留了这个功能,可以很容易地用大多数现有语言创建内容。

Servlet生命周期(Life Cycle)

深入理解Servlets 的功能的关键是理解它遵循的简单生命周期。这个生命周期管理servlets运行的多线程环境并且为开发人员提供分享服务端资源的可用机制。

Servlet 生命周期(life cycle) 如图

Servlet遵循以下三个阶段的生命周期:initialization,service,and destruction, 初始化和销毁通常执行一次,服务执行多次。

初始化是Servlet生命周期的的第一个阶段,代表着Servlet 服务的请求需要的资源的创建和初始化。所有的Servlet必须实现 javax.servlet.Servlet 接口,这个接口定义了init()方法匹配Servlet 生命周期( Life cycle)的初始化阶段 (intialization phase)。当一个容器调用一个Servlet时,在任何服务和请求前它会先调用init() 方法。

Servlet生命周期的服务阶段(service phase)代表所有请求的交互知道Servlet生命周期结束。Servlet接口匹配服务阶段的接口是service()方法。每一次请求(request)及请求产生的响应(response)调用一次service(),Servlet标准定义service()方法有两个参数 分别是:ajavax.servlet.ServletRequest 和 javax.servlet.ServletResponse 对象。这两个对象分别代表客户端请求动态资源和Servlet响应客户端结果。默认情况下,Servlet是多线程的,任何时间JSP容器加载一个Servlet,一旦初始化后,每一个请求都被这个Servlet的service()方法多线程同步执行。

Servlet生命周期的销毁阶段(destruction phase)代表一个Servlet被容器清除掉。Servlet接口匹配销毁阶段的接口是 destroy()方法。每次从使用中删除一个Servlet,容器就会调用 destroy()。

允许Servlet 优雅地终止并且整理它可能创建的任何资源。通过正确地使用Servlet生命周期中的初始化、服务、和销毁阶段,一个SerVlet可以有效的管理应用资源。在初始化时为服务请求加载所有需要的使用的资源,然后这些资源会在服务器被使用。并在销毁期清除。

这三个事件构成了Servlet的生命周期,但在实践中,Web开发人员需要担心更多的方法。Web上的内容主要是通过超文本传输协议(HTTP)访问的。基本的Servlet对HTTP一无所知,但是Servlet有一个特殊的实现,javax.servlet.http.HttpServlet,专门为它设计的。

HttpServlet 示意图:

servlet对java的重要性_初学者为什么还需要了解Servlets相关推荐

  1. servlet对java的重要性_浅谈Servlet技术中的Listener起到的作用

    Listener是在servlet2.3中加入的,主要用于对Session,request,context等进行监控. 使用Listener需要实现响应的接口.触发Listener事件的时候,tomc ...

  2. 学了go语言再学java容易吗_年纪大了还想转行当程序员,现在学java还来得及吗-Go语言中文社区...

    现在流行这样一种论调:说程序员就是吃青春饭的,年纪大了就不要再转行当java程序员了.可是仍然还有许多人前赴后继的想来学java当程序员,但是心里面有隐约担心:年纪也不小的,快30了还能学java吗? ...

  3. 初学者java学习计划_初学者:计划在Windows 7 Media Center中录制直播电视的时间

    初学者java学习计划 If you're a new user to Windows 7 Media Center you know it can act as a DVR and pause or ...

  4. 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...

    最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...

  5. java heroku_Heroku和Java –从新手到初学者,第2部分

    java heroku 问题 所以过了几天,我可以回到我的Recaps小项目. 我从检查日志开始,发现了以下内容: 2012-03-04T01:52:51+00:00 heroku[web.1]: I ...

  6. Heroku和Java –从新手到初学者,第2部分

    问题 所以过了几天,我可以回到我的Recaps小项目. 我从检查日志开始,发现了以下内容: 2012-03-04T01:52:51+00:00 heroku[web.1]: Idling 2012-0 ...

  7. java技术栈_七天串起java技术栈-开篇

    今年七月初,我萌生了想做公众号的打算.理由其实是跟我学习java的经历有关系,我觉得我学习的过程中真的是踩了不少坑,走了不少弯路.所以,我希望自己能充当一下指路人的角色,告诉初学者,怎么走最快,怎么走 ...

  8. 学习笔记:Java 并发编程①_基础知识入门

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...

  9. java热词_生成热词

    根据CVPR论文生成热点词汇云图 用怕python 爬取论文到数据库中: 分析.查找关键词,对他排序: 生成热词汇云图: 一.python爬取数据 import requests import pym ...

最新文章

  1. 低调的,我们改名字了!
  2. Mac下安装SecureCRT客户端并激活
  3. Openresty编写Lua代码一例
  4. 百兆光纤收发器和千兆光纤收发器的区别
  5. 【转】C,C++宏中#与##的讲解
  6. 【技术翻译】SIFT算子原理及其实现 (一)介绍
  7. Java 8新特性探究(五)重复注解(repeating annotations)
  8. JavaEE学习13--Jquery
  9. linux mysql 管理员,Linux管理员-CentOS 7上的MySQL设置
  10. spring-第二篇ApplicationContext国际化及事件机制
  11. 天涯明月刀7月5号服务器维护,天涯明月刀7月5日更新_天刀7月5日版本改动_3DM网游...
  12. 计算机户籍管理,里诺户口管理系统
  13. java isbn_ISBN书号查询示例代码
  14. RK3568 Android11 去除长按power键弹框的emergency按键
  15. 靡不有初,鲜克有终——写在VNote半周岁
  16. C#中.snk文件的作用
  17. 联想造超级计算机,联想将造超级计算机 性能10倍于IBM蓝色基因
  18. 《CSS世界》读书笔记(九)
  19. python django项目进度管理平台
  20. centos7.X一键搭建socks5 与http 代理

热门文章

  1. 转载一则笑话(java程序员招聘现场)
  2. ABAP SMARTFORMS打印二维码
  3. 计算机应用技术与信息安全与管理,广安职业技术学院2020年单独招生技能测试大纲(计算机应用技术、软件技术、信息安全与管理)...
  4. html表格table冻结行和列
  5. hana数据库同步到mysql中
  6. 短视频+内容营销,引流电商带货新浪潮
  7. jQuery重点详解
  8. 树梅派QT运行海康工业相机 error while error while loading shared libraries: libMvCameraControl.so: cannot open
  9. UI设计新手常遇到的问题及解决方法,快来看一看!
  10. 针对UI设计面试,你应注意的几个细节!