• 技术文章 >Java >java教程

    什么是servlet概念?

    藏色散人藏色散人2019-06-04 15:35:19原创4580
    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

    狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

    最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

    servlet 的生命周期

    servlet的生命周期是由servlet的容器来控制的,主要分为初始化、运行、销毁3个阶段,Servlet容器加载servlet,实例化后调用init()方法进行初始化,当请求到达时运行service()方法,根据对应请求调用doget或dopost方法,当服务器决定将实例销毁时调用destroy()方法(释放servlet占用的资源:关闭数据库连接、关闭文件输入输出流),在整个生命周期中,servlet的初始化和销毁只会发生一次,而service方法执行的次数则取决于servlet被客户端访问的次数。

    Servlet的特征

    Servlet是单例多线程的,只创建一个servlet对象,但是每次请求都会起一个线程并在自己线程栈内存中执行service方法。

    一个 Servlet 实例只会执行一次无参构造器与 init()方法,并且是在第一次访问时执行。

    用户每提交一次对当前 Servlet 的请求,就会执行一次 service()方法。

    一个 Servlet 实例只会执行一次 destroy()方法,在应用停止时执行。

    由于 Servlet 是单例多线程的,所以为了保证其线程安全性,一般情况下是不建议在 Servlet类中定义可修改的成员变量,因为每个线程均可修改这个成员变量,会出现线程安全问题。

    默认情况下,Servlet 在 Web 容器启动时是不会被实例化的。

    package com.ntqn.servlet;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /**
     * Servlet implementation class IndexServlet
     */
    @WebServlet("/IndexServlet.php")
    public class IndexServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        /**
         * Default constructor. 
         */
        public IndexServlet() {
            // TODO Auto-generated constructor stub
        }
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.getWriter().append("<h1>Hello,Sevlet</h1>");
        }
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    }

    以上就是什么是servlet概念?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:servlet
    上一篇:java开发要学什么前端技术? 下一篇:为什么要用tomcat?
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• Servlet怎么转发• 什么是servlet规范• SQL及servlet是什么?• jsp怎么调用servlet
    1/1

    PHP中文网