javaEE-----------servlet核心知识

---恢复内容开始---

一、Servlet简介

1.介绍

  运行在服务器端的小程序,sun公司提供的一套标准,用来处理客户端的请求、服务端的响应。由java语言编写。

Servlet规范(三个核心技术)

  Servlet技术

  filter技术

  listener技术  

2.Servlet 快速开始

  实现步骤:

      1.创建类实现Servlet接口

      2.覆盖service方法

      3.在web.xml中配置Servlet

  WEB实际开发中不会直接实现Servlet接口,覆盖的方法太多,我们一般继承HttpServlet

      实现步骤:

          1.创建类继承HttpServlet

          2.覆盖实现doGet和doPost方法

二、Servlet API

1.Servlet接口中的方法

  1.init(ServletConfig config)

    servlet对象创建时执行该方法,ServletConfig是该servlet对象的配置信息

  2.service(ServletRequest request, ServletResponse response)

    每次请求都会执行该方法,ServletRequest封装的时候符合http标准的请求信息,ServletResponse内部封装的是符合http标准的响应信息

  3.destroy()

    servlet销毁时执行该方法(服务器关闭)

2.HttpServlet类的方法

  init()

  doGet(HttpServletRequest request, HttpServletResponse response)

  doPost(HttpServletRequest request, HttpServletResponse response)

  destroy()

3.Servlet的生命周期

  Servlet默认第一次访问创建servlet对象(可通过配置文件修改)

  服务器关闭时销毁servlet对象

  每次访问必然执行service()方法

三、Servlet 配置

1.基本配置

其中url-pattern的配置方式:

  1. 完全匹配,访问的资源与配置的字眼完全相同才能访问到
  2. 目录匹配:/虚拟的目录/*  *代表任意资源
  3. 扩展名匹配: *.扩展名 

   2&3 不能混用

2.服务器启动实例化Servlet配置

  Servlet默认第一次访问时被创建,当Servlet配置有<load-on-startup>时,servlet对象在服务器启动时就创建

3.缺省Servlet

  可以将url-pattern配置一个/,代表该servlet是缺省的servlet

  当你访问资源地址所有的servlet都不匹配时,缺省的servlet负责处理

  web应用中所有的资源的响应都是servlet负责的,包括静态资源

4.首页

  在servlet配置中使用<welcome-file-list></welcome-file-list>配置web项目的首页,可以配置多个

四、ServletContext对象

1.什么事ServletContext对象(应用较多)

  ServletContext是一个web应用的环境对象,该对象内部封装该web应用的信息,ServletContext对象一个web应用中只有一个(一个web应用中servlet对象可以有多个)

  ServletContext对象的生命周期  

    创建:该web应用被加载(服务器启动)

    销毁:web应用被卸载(服务器关闭)

2.获取ServletContext对象

  1.ServletContext context  = config.getServletContext();

  2.ServletContext context  = this.getServletContext();  ------------  推荐使用

3.ServletContext的作用

  1.获取web应用全局的初始化参数

    获取web.xml中配置的全局参数

    <context-param></context-param>

  2.获得web应用中任何资源的绝对路径

  String path = context.getRealPath("web应用相对路径");

  3.ServletContext是一个域对象

    ServletContext域对象的作用范围:整个web应用(所有的web资源都可以随意想ServletContext域中存取数据,数据可以共享)

  域对象通用的方法:

  setAttribute(String name, Object obj);

  getAttribute(String name);

  removeAttribute(String name);

 

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/cl-andy/p/9082257.html