servlet相关

来源:互联网 发布:淘宝宝贝详情页面尺寸 编辑:程序博客网 时间:2024/06/01 09:05

一:简述
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是运行在服务器端得Java程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容


二:生命
1、创建:默认第一次访问servlet时创建,创建之后对象存在内存中,等待为后面的访问服务。servlet对象只有一个。
2、销毁:服务器关闭或web应用从服务器中移除。


三:与生命周期相关方法

  1. service(ServletRequest req,ServletResponse res)——-每次访问时都会执行

  2. init(ServletConfig cong)———-servelet对象创建的时候执行
    【web应用需要的一些初始化代码,比如数据库连接】

  3. destroy()———–servelet对象销毁时、服务器正常关闭、web应用从服务器中移除
    【关闭资源的一些方法,比如关闭IO、数据库】

四:相关配置文件

  1. 基本配置
    1)配置servlet的实体
<servlet>    <servlet-name>随意书写,用于mapping寻找</servlet-name>    <servlet-class>servlet类的一个全包名</servlet-class></servlet>

例:

<servlet>    <servlet-name>Demo1</servlet-name>    <servlet-class>com.zj.quickstart.Demo1</servlet-class>  </servlet>

2)配置servlet的对外访问的虚拟路径

<servlet-mapping>    <servlet-name>和上面的name一样</servlet-name>    <url-pattern>/虚拟路径</url-pattern></servlet-mapping>

虚拟路径的写法:

  • 完全匹配:客户端的访问地址与配置完全一致才可以访问到
  • 目录匹配:以“/”开头,“*”结束。
  • 扩展名匹配:以“*”开头,扩展名结束。

例:
——————————-完全匹配——————————–

<servlet-mapping>    <servlet-name>Demo1</servlet-name>    <url-pattern>/demo1</url-pattern></servlet-mapping>

本地访问路径:localhost:8080/demo1

——————————-目录匹配——————————–

<servlet-mapping>    <servlet-name>Demo1</servlet-name>    <url-pattern>/aaa/bbb/*</url-pattern></servlet-mapping>

本地访问路径:

  • localhost:8080/aaa/bbb/sdfsf
  • localhost:8080/aaa/bbb
    (注:“*“位置可任意书写代替,也可不写)

——————————扩展名匹配—————————–

<servlet-mapping>    <servlet-name>Demo1</servlet-name>    <url-pattern>*.abc</url-pattern></servlet-mapping>

本地访问路径:localhost:8080/sdfss.abc
(注:“*”可任意代替“)

2、启动时实例化servlet

<servlet>    <servlet-name>Demo2</servlet-name>    <servlet-class>com.zj.quickstart.Demo2</servlet-class>    <load-on-startup>2</load-on-startup></servlet>

注:数字代表实例化的顺序,数字越小越早创建

3、缺省的servlet

  • 当所有的servlet都不匹配时,由缺省的servlet负责执行。
  • 将url-pattern配置成”/“即为缺省
<servlet-mapping>    <servlet-name>Demo2</servlet-name>    <url-pattern>/</url-pattern></servlet-mapping>

五、相关参数

  • ServletConfig

    1)简述:
    Servlet的配置对象,内部封装的是servlet的配置信息,在web容器调用init方法时,将servletConfig作为参数进行传递。

    2)获取:getServletConfig()

    3)作用:
    ①获取servlet的名称(servlet-name里的名字)
    这里写图片描述

    getServletConfig().getServletName();

    ②获取初始化参数
    A、设置初始化参数

    设置初始化参数

    B、获取初始化参数

    • 获取单个
      getServletConfig().getInitParameter("a");
    • 获取多个
      ServletConfig config = this.getServletConfig();
      Enumeration enums = config.getInitParameterNames();
      while(enums.hasMoreElements()){
      String name = (String)enums.nextElement();
      System.out.println(name+" "+config.getInitParameter(name));
      }
  • ServletConfig
    1)简述:
    ServletConfig是servlet上下文对象,实质代表web应用上下文对象,对象只有一个,所有的servlet共享一个ServletConfig。

    2)创建:
    服务器启动时就会创建,并将这个对象放置在内存中,供所有的servlet访问。

    3)销毁:
    关闭服务器、web应用从服务器中移除。

    4)获得对象:
    ①通过servletConfig对象
    this.getServletConfig().getServletContext();
    ②直接获得
    getServletContext();

    5)作用:

    • 获得初始化参数

      A、设置初始化参数
      设置初始化参数

      B、获取参数
      ServletContext context = getServletContext();
      Enumeration<String> enums = context.getInitParameterNames();
      while(enums.hasMoreElements()){
      String name = (String)enums.nextElement();
      System.out.println(name+" "+context.getInitParameter(name));
      }

    • 获取web资源的绝对路径

原创粉丝点击