servlet

什么是servlet?我相信现在很多做了J2EE的根本都不知道什么是Servlet,工作时只知道SSH框架,SSM框架,做java Web开发不知道什么是Servlet,我觉得不是一个合格的java web程序员。

 

Defines methods that all servlets must implement.

A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP, the HyperText Transfer Protocol.

To implement this interface, you can write a generic servlet that extends javax.servlet.GenericServlet or an HTTP servlet that extends javax.servlet.http.HttpServlet.

This interface defines methods to initialize a servlet, to service requests, and to remove a servlet from the server. These are known as life-cycle methods and are called in the following sequence:

  1. The servlet is constructed, then initialized with the init method.
  2. Any calls from clients to the service method are handled.
  3. The servlet is taken out of service, then destroyed with the destroy method, then garbage collected and finalized.

In addition to the life-cycle methods, this interface provides the getServletConfig method, which the servlet can use to get any startup information, and the getServletInfo method, which allows the servlet to return basic information about itself, such as author, version, and copyright.

以上是servlet 官网的解释。

经谷歌翻译如下:

定义所有servlet必须实现的方法。

servlet是一个在Web服务器中运行的小型Java程序。 Servlet通常通过HTTP(超文本传输​​协议)接收和响应来自Web客户端的请求。

要实现此接口,您可以编写扩展javax.servlet.GenericServlet的通用servlet或扩展javax.servlet.http.HttpServlet的HTTP servlet。

此接口定义了初始化servlet,服务请求以及从服务器中删除servlet的方法。这些被称为生命周期方法,按以下顺序调用:

构造servlet,然后使用init方法初始化。
将处理从客户端到服务方法的任何调用。
servlet停止服务,然后使用destroy方法销毁,然后收集垃圾并最终确定。
除了生命周期方法之外,这个接口还提供了getServletConfig方法,servlet可以使用它来获取任何启动信息,以及getServletInfo方法,它允许servlet返回有关其自身的基本信息,例如作者,版本和版权。

这里讲的小型的java程序,我觉得讲的不是很严谨,我个人理解是一个servlet实现类是java程序片。为什么说是java程序片,因为servlet实现类要运行在servlet 容器中。我们常见的servlet容器有tomcat,weblogic。这里又引入一个概念,servlet容器。servlet容器是能够调用servlet实现类实例的环境。打个比方,我们的操作系统,可以称作各个应用的容器,java虚拟机是java程序的容器,tomcat是运行servlet的容器。容器可以理解为运行的环境。java类要能够运行在servlet容器上,需要遵循servlet容器的标准,必须要这个类实现什么方法 。我们的servlet容器规定servlet实现类必须实现servlet接口的所有方法 。servlet接口的方法如下:

比较常用的servlet容器有tomcat,tomcat容器的目录结构如下:

你的项目结构必须符合tomcat容器的要求才能运行在tomcat容器上。

运行在tomcat容器上的java web项目中,比较重要的一个配置文件就是在WEB-INF目录下的web.xml文件。该文件是java web项目的配置文件包括servlet 、filter等信息的配置。看到xml文件相信知道spring框架的小伙伴都知道spring框架通过xml文件管理javabean,对xml文件里定义的类是通过反射来实现(相信很多小伙伴面试的时候回答的都是脱口而出的)。tomcat容器对java web容器的配置文件里配置的servlet实现类,我相信也是通过反射来获取servlet实例。(反射:给我一个类名,我可以创建一个对象,这里的对象不是男女朋友那种对象)。servlet在tomcat中是单例的,也就是每一个servlet类,只对应一个对象。在servlet类实例化时,你可以做很多事,比如启动一个线程,比如初始化spring,初始化strut,各种初始化。

这里的是web.xml其中一个配置项。通过解析web.xml,是不是可以得到所有的servlet的类名,根据这些类名是不是可以得到对应的类对象,其中的<servlet-class>标签就是告诉容器待会有compressionFilters.CompressionFilterTestServlet这个类,你待会要通过反射,将这个类的实例管理起来。

这里是对应实例要处理的请求路径。http请求都是会将请求路径在请求头里传到tomcat容器里的,tomcat容器发现请求头中的请求路径为/CompressionTest,那么就找到对象名为CompressionFilterTestServlet的对象对应的方法进行处理,例如doGet,doPost。在doGet或者doPost方法中,你可以做很多事,比如查询数据库,查到数据库的数据,并将数据返回到客户端。

servlet这么重要,很多现在培训机构培训出来的只认识ssh框架ssm框架,实在是行业的悲哀。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值