首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

Servlet学习收拾(一)——认识servlet

2012-11-25 
Servlet学习整理(一)——认识servletServlet规范Servlet规范是J2EE 最重要的一部分,如果要开发基于J2EE的Web

Servlet学习整理(一)——认识servlet
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规范与HTTPWeb应用是离不开 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 开发

?

热点排行