• Servlet/JSP-01 Servlet及其生命周期


    一.起步

    1.新建一个类继承Servlet接口

    public class HelloServlet implements Servlet {
    
        @Override
        public void destroy() {
            System.out.println("Destroy...");
        }
    
        @Override
        public ServletConfig getServletConfig() {
            System.out.println("getServletConfig...");
            return null;
        }
    
        @Override
        public String getServletInfo() {
            System.out.println("getServletInfo...");
            return null;
        }
    
        @Override
        public void init(ServletConfig arg0) throws ServletException {
            System.out.println("init...");
        }
    
        @Override
        public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
            System.out.println("service...");
            resp.getWriter().println("Hello World...");
        }
    
        public HelloServlet() {
            System.out.println("HelloServlet Constructor...");
        }
    }

    2.配置web.xml

      <servlet>
          <servlet-name>helloServlet</servlet-name>
          <servlet-class>com.bwr.start.HelloServlet</servlet-class>
      </servlet>
      
      <servlet-mapping>
          <servlet-name>helloServlet</servlet-name>
          <url-pattern>/hello</url-pattern>
      </servlet-mapping>

    说明:部署在tomcat(本地)上,默认访问地址为http://localhost:8080/project_name/hello, 浏览器页面显示"hello world..."

    二. Servlet容器

    1.可以创建Servlet,并调用Servlet的相关生命周期方法

    2.Servlet, JSP, Filter, Listener都在容器内运行

    三. Servlet的生命周期

    1.生命周期相关方法(以下方法都是由servlet容器负责调用)

      Servlet构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet实例,调用构造器。

          说明Servlet是单例的。

      init():只被调用一次,在创建号实例后立即被调用,用于初始化当前Servlet,此方法会传入一个ServletConfig参数。

      service():会被多次调用。每次请求都会调用service方法,用于响应请求。

      destroy():只被调用一次。在当前Servlet所在的WEB应用被卸载前调用,用于释放当前Servlet占用的资源。

    2. load-on-startup配置

      a. 配置在web.xml中servlet标签中,用于指定Servlet创建的时机.

      b. load-on-startup取值:若为负数则在第一次请求时被创建;若为0或整数,则在当前应用被web容器加载时创建实例,值越小,加载的时机越早。

      <servlet>
          <servlet-name>helloServlet</servlet-name>
          <servlet-class>com.bwr.start.HelloServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
      </servlet>

    3. Servlet配置细节

      a. 一个Servlet可以有多个servlet-mapping配置映射

      b. <url-pattern> 配置可以使用通配符,但是只允许两种形式

        <url-pattern>/*</url-pattern>    有"/"不允许加扩展名

        <url-pattern>*.do</url-pattern>    有扩展名不允许加"/"

    三. Servlet相关的类

    1. ServletConfig

      封装了Servlet得配置信息,并且可以获取ServletContext对象。

    2. ServletContext

      Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,在Servlet中可以通过ServletConfig的getServletContext()方法获取。

    3. ServletRequest

    4. ServletResponse

          

  • 相关阅读:
    使用Chrome断点调试javascript程序
    vue-iview-admin项目过大导致打包失败
    vue+iview后台管理系统util.ajax跨域问题的解决方法
    webpack vue热加载编译速度慢
    (转)网站架构变迁
    (转)工作不到一年,做出了100k系统,老板给我升职加薪
    (转)CPU说:这个世界慢!死!了!
    (转)一个故事搞懂“ERP“
    (转)手动搭建自己的nuget服务器及使用
    doc系统maven打包脚本
  • 原文地址:https://www.cnblogs.com/techroad4ca/p/5479830.html
Copyright © 2020-2023  润新知