servlet简介

Posted fenjyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet简介相关的知识,希望对你有一定的参考价值。

一,前言

? Servlet(server applet):是web开发中重要三大组件之一(Filter、Listener),是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

? 使用servlet的好处:

  • 在web处理中,性能较好
  • servlet是运行在web容器内部,不需要单独创建
  • 跨平台,因为是由Java语言编写的
  • 扩展性强,具有继承,构造函数等特性
  • 安全,它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

二,servlet工作原理

  • 当web服务器接收到客户端请求时,解析请求路径。
  • 在项目中查找web.xml文件,判断是否存在请求路径。
  • 如果存在则通过反射原理获取该类的字节码文件,并加载进内存。
  • 调用service方法。

三,servlet生命周期

? Servlet是一个接口,先来看下源码。

public interface Servlet {
    void init(ServletConfig var1) throws ServletException;
 
    ServletConfig getServletConfig();
 
    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
 
    String getServletInfo();
 
    void destroy();
}

? 简单理解Servlet生命周期为创建,生存,销毁三个步骤。

  • init():Servlet第一次被请求时,调用init()方法并初始化,且在整个生命周期中只执行一次。
  • service():该方法可以理解为servlet执行业务代码的方法,在web服务器中会被多次调用。
  • destroy():web容器关闭时Servlet销毁,但是注意该方法在服务器关闭之前调用。
  • getServletInfo(),这个方法会返回Servlet的一段描述,可以返回一段字符串。
  • getServletConfig(),这个方法会返回由Servlet容器传给init( )方法的ServletConfig对象。
public class ServletDemo implements Servlet{

    public void init(ServletConfig arg0) throws ServletException {
        System.out.println("调用init...");
    }
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
        System.out.println("调用service...");
    }
    public ServletConfig getServletConfig() {
        // TODO Auto-generated method stub
        return null;
    }
    public String getServletInfo() {
        // TODO Auto-generated method stub
        return null;
    }
    public void destroy() {
        System.out.println("调用destroy...");
    }
}

? 当第一次请求servlet时:

技术图片

? 先调用init()方法初始化,接着调用service(),那么多次请求servlet时:

? 技术图片

? 那么在web服务器关闭时或者重新加载时,调用destroy()方法。

? 技术图片

四,servlet与JSP区别

? 1、JSP在本质上就是servlet。

? 2、Servlet是JAVA代码编写,擅长于流程控制和事务处理,而通过Servlet来生成动态网页效果不能较好显示。

? 3、JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。

? 4、Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的html里分离开来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。

? 5、JSP侧重于视图,Servlet主要用于控制逻辑。

以上是关于servlet简介的主要内容,如果未能解决你的问题,请参考以下文章

Servlet上

引入servlet概念

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

Servlet简介

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

servlet简介及其生命周期