Servlet规范
Servlet规范是J2EE 最重要的一部分,如果要开发基于J2EE的Web应用,那么Servlet规范是必须掌握的。
而Servlet 规范中最重要的就是 servlet 和 filter 这两项技术。
关于这两个技术以及servlet的具体内容可以参考——《servlet规范》或后面的学习整理,这里就不多说了。
Servlet源代码
servlet源代码可以在tomcat中找到,位于$tomcat_home/lib/servlet-api.jar。
为什么servlet 源代码会有两个包,javax.servlet 和 javax.servlet.http ?
因为起初设计该规范的人认为 Servlet 是一种服务模型,不一定是依赖某种网络协议之上,因此就抽象出了一个 javax.servlet ,同时提供一个基于 HTTP 协议上的接口扩展。但实际运行这么多年来,似乎没有发现其他协议实现的 Servlet 技术。
javax.servlet 和 javax.servlet.http 这两个包总共加起来也不过是三四十个接口和类,可以通过 J2EE 的 JavaDoc 文档熟知每个类和接口的具体功能。
下面几个接口是必须熟知每个方法的功能和用途:
* HttpServlet
* ServetConfig
* ServletContext
* Filter
* FilterConfig
* FilterChain
* RequestDispatcher
* HttpServletRequest
* HttpServletResponse
* HttpSession
* 一些 Listenser 类
其中 HttpServletRequest 和 HttpServletResponse 这两个接口更应该是烂熟于心。
Servlet与web框架
如果要学习web框架,那么servlet 和 filter 这两项技术必须要熟练掌握;
因为大多数框架不是基于 servlet 就是基于 filter,如果它要在 Servlet 容器上运行,就永远也脱离不开这个模型。
Servlet规范与HTTP
Web应用是离不开 HTTP 协议的,Servlet 规范其实就是对 HTTP 协议做面向对象的封装。
为什么HttpServletRequest 和 HttpServletResponse 这两个接口很重要?因为HTTP协议中的请求和响应就是对应了 HttpServletRequest 和 HttpServletResponse 这两个接口。
可以通过HttpServletRequest 来获取所有请求相关的信息,包括 URI、Cookie、Header、请求参数等,别无它路;当你使用某个框架时,你想获取HTTP请求的相关信息,只要拿到 HttpServletRequest 实例即可。
而 HttpServletResponse接口是用来产生 HTTP 回应的,包含 Cookie、Header 以及回应的内容等等。
问题:
1、HttpServletRequest 和 HttpServletResponse 等不是接口吗,哪来的实例对象?
这些接口的实现类是由各个 J2EE 厂商提供的web容器实现的,比如tomca ,weblogic都有自己的实现。
接口的实现是由J2EE厂商实现,对象实例化是由web容器实例化;
我们只需要引入servlet-api.jar包,在web容器上直接调用就可以了。
2、J2EE 与 Servlet 的关系和区别?
J2EE是指Java2平台企业版(Java 2 Platform,Enterprise Edition),基于JAVA技术。
J2EE是一套技术架构,区别于传统的应用开发;包含许多组件,作用是简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
狭义的说,J2EE是指企业级开发应用,里面用到的框架是MVC架构,就是模型、试图、控制分离的架构。这样在大型应用中使得后期的维护、升级都变的简单,上层的东西不需要知道下层是如何实现的,只需调用下层的接口就可以了。
servlet是一种技术实现规范,是对J2EE架构的部分技术的指导;目前看来,servlet主要应用在控制层(C),用来处理业务逻辑之类的,而不管页面显示和数据模型(M和V)。
当然,JSP可以代替servlet,但是建议使用JSP时主要用于显示页面而不要处理业务逻辑。模型层就是指JavaBean了。
j2ee更像一种概念,一种思想,就是框架。而servlet是一种技术的实现,实实在在的东西。这就是他们的区别。
通俗一点,比如你有一块地想盖个房子,那这房子是要盖成楼房还是平房(平房好比传统的应用开发,J2EE就是现在火热的楼房),楼房容积率高当然要选楼房了(也就是我们的选择了J2EE);楼房是由楼梯、钢筋等多个部分构成的(J2EE中也包含很多组件);那楼梯怎么做呢,这就要参考楼梯的设计规范了;在J2EE中,servlet就是J2EE中建造“楼梯”的设计规范;准确一点,servlet主要是J2EE中控制层的实现规范。
-----------------------------------------------------------------------------------------------------------
参考:http://www.oschina.net/question/12_52027 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
分享到:
相关推荐
NULL 博文链接:https://pisces-java.iteye.com/blog/723125
Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all
《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet;或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 《JSP & Servlet学习笔记(第2版)》针对Servlet 3.0的...
林学良Jsp&Servlet学习笔记,html格式的,很基础的学习文档。
servlet学习入门教材 servlet学习入门教材 servlet学习入门教材
Servlet学习笔记Servlet学习笔记
web服务器三大组件servlet、Filter、Listene——浅浅笔记
servlet学习笔记.doc
Java Servlet 学习课件 Java Servlet 学习课件
学习JSP 学习JSP(JBuilder版)——用Servlet实现页面间通信(Session对象)
JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 本书针对Servlet3.0的新功能全面改版,无论章节架构...
这是一份关于2.1版Java Servlet API的说明文档。Java Servlet API由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件包的同时存在使得Java Servlet API能够适应将来的其他...
Servlet 3.0作为Java EE 6规范体系中一员,随着Java EE 6规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化Web应用的开发和部署。
用JSP+JavaBean+Servlet开发的数据库应用实例——CD管理系统,有完整的工程源码,并且利用它演示在Servlet中连接和使用MySQL数据库。
javaEE servlet 学习笔记 jsp本质上是servlet,但是为了更加符合mvc的框架,将页面显示和逻辑控制分离,jsp页面只负责页面,也就是mvc中的V(view),而servlet负责mvc中的C(control)。 而为了更加好的理解结构,一下...
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...
Servlet学习笔记
JSPServlet新手学习资料JSPServlet新手学习资料