美文网首页
Java--Servlet基础

Java--Servlet基础

作者: 栗子酥小小 | 来源:发表于2018-07-18 22:54 被阅读0次

web容器启动

在 WEB 容器启动后,会读取 Servlet 设置信息,将 Servlet 类加载并实例化,并为每个 Servlet 设置信息产生一个
ServletConfig 对象,而后调用 Servlet 接口的 init() 方法,并将产生的 ServletConfig 对象当作参数传入。

Servlet接口

  • init(),在第一次请求servlet时会被调用,且整个生命周期只会被调用一次。一般来说,初始化时servlet容器会通过init()方法将一个ServletConfig对象传递给相应的内部成员变量,以供后续getXXX调用。
  • service(),每当有请求到来,就调用这个方法。
    • HttpServlet中继承了抽象类GenericServlet,而GenericServlet实现了接口Servlet, ServletConfig,所以HttpServlet中需要继承并重写servlet方法,里面封装了GET、POST、PUT等多个HTTP方法,所以当编写自己的httpservlet时,只需要重写相应的http方法。Servlet容器会通过调用service()方法,从而调用到自己重写的http方法。
  • destory(),关闭Servlet容器或者卸载应用程序时调用,一般在这个方法中编写清除代码。
  • getServletConfig(),返回一个ServletConfig对象
  • getServletInfo(),返回一个字符串对象,可以自己定义。

ServletConfig

  • getServletContext(),ServletContext是一个接口,表示Servlet应用程序,每个Web应用程序只有一个上下文,在将一个应用程序不熟到多个容器的分布式环境中,每台Java虚拟机只有一个ServletContext对象。
  • getInitParameter(),可以取得@WebServlet或者 部署描述符 中的配置信息。(@WebServlet还需要配合@WebInitParam来使用)
  • getInitParameterNames(); 取得所有配置信息的名称
  • getServletName(),取得servlet的名称。

GenericServlet

  • 同时implements Servlet, ServletConfig
  • 主要作用:实现了ServletConfig中的所有方法
  • 实现了Servlet中除service外的所有方法。
  • 最重要的是,实现了Servlet中的init方法中要求的“将ServletConfig对象赋予类中的成员变量,以便getXXX调用,但是又没有占据原本的无参init()方法,所以后面如果有需要,还是可以自己重现init()方法来实现自己的初始化,这个无参方法 会在public void init(ServletConfig config)中被调用。

HttpServlet

  • 继承自GenericServlet,实现了GenericServlet唯一的抽象方法service();
  • 所有继承HttpServlet的类,已经可以分别调用http.getServletConfig()和http.getServletContext();,一般来说我们也不需要重写这两个方法。

部署描述符web.xml

  • 放在WEB-INF目录下
  • 优点:如果需要修改配置值,如Servlet路径,则不需要重现编译Servlet类。
  • 优点2:可以将初始参数传给一个Servlet,不需要重新编译Servlet类,就可以对它们进行编辑。
  • 如果同时在@WebServlet和部署描述符上定义值,则部署描述符的优先级更高。

相关文章

  • Java--Servlet基础

    web容器启动 在 WEB 容器启动后,会读取 Servlet 设置信息,将 Servlet 类加载并实例化,并为...

  • Java--Servlet到Tomcat的最简配置步骤

    新建目录框架 在tomcat的主目录下的webapp下建立自己的项目文件夹,如servlet20180420 进入...

  • 机械设备安装技术

    设备基础种类及应用 垫层基础允许产生沉降:大型储罐 浅基础扩展基础联合基础:轧机独立基础 深基础桩基础:适用于需要...

  • 基础,基础,基础

    如果有人现在问我,JAVA该怎么学,我会告诉他不要急于求成,少看视频,多练,多思考。但说到这里有人可能会反...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 零基础学画画从入门到放弃

    零基础应该怎么学画画?零基础那就从基础开始学啊!基础是什么?造型基础和色彩基础。 造型基础就是用点线面组成起码能让...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 基础基础还是基础

    这次去面试,还是被基础给打趴下了。 对于PHP7的新特性没有了解。 对于TP的新特性没有了解。 再一个就是独立完成...

  • 零基础学UI设计需要美术基础吗?

    零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需...

网友评论

      本文标题:Java--Servlet基础

      本文链接:https://www.haomeiwen.com/subject/hvzapftx.html