`
wade6
  • 浏览: 273491 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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规范与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 开发

 

分享到:
评论

相关推荐

    Servlet 3.0新特性——文件上传接口

    Servlet 3.0是Java EE 6规范的一部分,它引入了许多新特性,极大地提升了Web开发的效率和灵活性。其中,文件上传接口的改进是开发者们非常关注的一个亮点。在这个更新中,Servlet API提供了更简单、更高效的方式来...

    基于JSP+Servlet+JavaBean+Dao开发模式——学生体质管理系统{2018.2的IDEA加8.0的MySQL和9.0.11的Tomcat实现}

    在本项目中,我们采用的是基于JSP+Servlet+JavaBean+DAO的经典Web开发模式,用于构建一个学生体质管理系统。这种模式是Java Web开发中常用的一种架构,它将业务逻辑、数据访问和用户界面进行了清晰的分离,提高了...

    简单的web开发——servlet案例

    总之,"简单的web开发——servlet案例"为初学者提供了一个很好的起点,通过学习和实践,你可以掌握如何使用Servlet构建动态Web应用程序,并逐步熟悉Java Web开发的整体流程。随着经验的增长,你将能够运用更复杂的...

    林学良Jsp&Servlet学习笔记

    - **加载与实例化**:Servlet容器(如Tomcat)加载Servlet类并创建一个Servlet实例。 - **初始化**:调用Servlet的`init()`方法,进行初始化操作,如设置配置参数。 - **服务**:每次请求到来,Servlet容器都会...

    JSP&Servlet学习笔记.pdf

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。  本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...

    Servlet学习笔记(java的Servlet)

    Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all

    servlet学习笔记.doc

    Servlet是Java平台中用于开发Web应用程序的核心技术之一,它是一个Java类,遵循Java Servlet API规范,用于处理来自客户端(通常是Web浏览器)的HTTP...学习和理解Servlet是成为一名合格的Web开发者的关键技能之一。

    Java_Servlet_API说明文档——中文

    - **加载与初始化**:当Servlet第一次被请求时,由Servlet引擎负责加载并初始化。 - **处理请求**:接收到客户端的请求后,Servlet负责处理请求并生成相应的响应。 - **销毁**:当不再需要Servlet时,Servlet引擎...

    JSP Servlet 学习笔记 第2版 林信良 随书光盘 共三卷

    JSP Servlet 学习笔记 第2版 林信良 随书光盘 第3卷

    java-servlet学习笔记

    Java Servlet是Java Web开发中的核心组件之一,它用于构建动态网站和Web应用程序。Servlet是一个Java类,遵循Java Servlet API规范,能够接收并响应来自客户端(如浏览器)的HTTP请求,处理数据,然后返回响应结果。...

    JSP_Servlet学习笔记(第2版).pdf

    《JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet;或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 《JSP & Servlet学习笔记(第2版)》针对Servlet 3.0的...

    图书管理系统——Servlet

    在"图书管理系统——Servlet"中,可能包含以下几个主要功能模块: 1. **用户登录与权限管理**:用户需要经过身份验证才能访问系统,系统可能有管理员和普通读者两种角色,权限不同,如管理员可以添加、删除和修改...

    [JSP&Servlet;学习笔记(第2版)]

    1. **加载与实例化**:当首次请求到达时,Servlet容器加载Servlet类并创建一个Servlet实例。 2. **初始化**:Servlet实例调用`init()`方法进行初始化,可以配置初始化参数。 3. **服务**:每次请求都会调用`service...

    web服务器三大组件servlet、Filter、Listener——浅浅笔记

    Servlet是一个Java类,它继承自HttpServlet抽象类,并实现了doGet和doPost等方法。doGet方法用于处理GET请求,而doPost方法则处理POST请求。POST请求的安全性高于GET,因为它的参数是以加密形式传输,适用于敏感数据...

    servlet基础与servlet容器模型

    本篇将深入探讨Servlet的基础知识及其运行环境——Servlet容器模型。 首先,让我们了解Servlet的基础。Servlet是一个Java类,遵循javax.servlet.Servlet接口,它允许开发者扩展服务器的功能。当用户向Web服务器发送...

    《Java Web开发基础——从Servlet到JSP》源代码v1.0

    《Java Web开发基础——从Servlet到JSP》是一本深入探讨Java Web开发的教程,主要涵盖了从基础的Servlet到高级的JSP技术。这个压缩包包含的源代码是该书教学内容的实践部分,旨在帮助读者更好地理解和应用所学知识。...

    servlet学习的一个例子

    总之,"servlet学习的一个例子"涵盖了Servlet与JSP的基本概念和协作方式,通过实践可以更好地理解和掌握这些核心技术,为构建复杂的Java Web应用打下坚实基础。在这个项目中,你可以看到Servlet如何处理请求,如何与...

Global site tag (gtag.js) - Google Analytics