Java学习笔记七:Servlet的配置和ServletContext的使用

Serlvet配置方式

也就是xml serlvet配置 中 url-pattern 路径标签的配置

  • 1.全路径匹配

以 / 开始 , /a 、/aa 、/aa/bb
localhost:8080/项目名称/aa/bb

  • 2.路径匹配,前半段匹配,* 其实是一个通配符,匹配任意文字

以 / 开始,但是以 * 结束 /a/* 、/*

  • 3.以扩展名匹配,也就是把通配符写在前面

写法:没有 / 以开始,.扩展名,.aa、.bb
localhost:8080/项目名称/asdasdas.aa

ServeltContext

ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象

获取对象

1.得到servlet配置对象
ServletConfig config = getServletConfig();

作用

1.获取全局配置参数
2.获取web工程中的资源
3.存取数据,用于servlet之间的共享数据,域对象

1.获取全局配置参数

 用于配置的全局参数

    age
    18

2.获取在web 应用(工程)中的资源

1.获取相关资源在程序中编译出来的绝对路径(不一定编译托管到Tomcat中,如IDEA)
主要的方法是:context.getRealPath()。获取到相关资源的绝对路径

context.getRealPath("");//这里得到的是项目输出至IDEA里面的根目录
F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded

String path = context.getRealPath("file/config.properties");
F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded\file\config.properties

2.getResourceAsStream 获取资源,流对象
主要方法是getResoutrceAsSream(),根据相对路径,直接获取流对象

直接给相对路径,然后获取流对象

//获取web工程下的资源,转化成流对象。前面隐藏的是当前工程的目录。
 /*
  * 相对路径(有参照物)
  *
  *   工程编译输出的里面的根目录
  *
  * a路径 -- 工程在编译输出里面的目录
  *   F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded
  *
  *b路径 --
  *   file\config.properties
  *
  *   F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded
  *
  * 绝对路径(没有参照路径)
  *   F:\An\IdeaProjects\ServletDemo\out\artifacts\untitled_war_exploded\file\config.properties
  * */

  InputStream is = context.getResourceAsStream("file/config.properties");

3.ClassLoader(类加载器)
通过ClassLoader去获取web工程下的资源
Java学习笔记七:Servlet的配置和ServletContext的使用_第1张图片
4.使用ServletContext(Application)存取数据

1.定义一个登陆的html页面,定义一个form表单
Java学习笔记七:Servlet的配置和ServletContext的使用_第2张图片
2.定义一个Servlet,命名为LoginServlet
Java学习笔记七:Servlet的配置和ServletContext的使用_第3张图片
3.针对成功或者失败,进行判断,并且记录登陆数,跳转界面
Java学习笔记七:Servlet的配置和ServletContext的使用_第4张图片

细节

action 所指定的相对路径,是相对当前这个html的路径而言

当然,也可以直接指定绝对路径,/Demo/Servlet01
Java学习笔记七:Servlet的配置和ServletContext的使用_第5张图片

你可能感兴趣的:(Java)