Java Web 域对象

域对象主要用在web应用中,可以存储数据,并且作用于一定范围。

一、域对象

所谓域对象,即拥有作用域的对象,可以在范围内共享数据。

二、数据共享的方法

方法 说明
void setAttribute(String name, Object obj) 存储数据
Object getAttribute(String name) 通过键获取值
void removeAttribute(String name) 通过键移除键值对

三、ServletContext 域

1. 说明

ServletContext,代表整个 Web 应用

ServletContext 的作用域是整个 Web 应用

ServletContext 随 Web 应用的启动而创建,随 Web 应用的关闭而销毁

ServletContext 中包含着 Web 应用的配置信息,还包含着应用中所有 Servlet 可以共享的数据

ServletContext 可以共享所有用户所有请求的数据

2. 获取

方式 1:

通过 request 对象获取

1
request.getServletContext()

方式 2:

通过 HttpServlet 获取

1
this.getServletContext()

需要注意的是,两种方式获取的是同一个 ServletContext 域,因此用哪一种方式都可以。

3. 其它方法

(1) 获取 MIME 类型

方法 说明
getMimeType(String filename) 根据文件名获取 MIME 类型

常见的MIME类型:

  • 超文本标记语言文本 .html,.html text/html
  • 普通文本 .txt text/plain
  • RTF文本 .rtf application/rtf
  • GIF图形 .gif image/gif
  • JPEG图形 .jpeg,.jpg image/jpeg
  • au声音文件 .au audio/basic
  • MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
  • RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
  • MPEG文件 .mpg,.mpeg video/mpeg
  • AVI文件 .avi video/x-msvideo
  • GZIP文件 .gz application/x-gzip
  • TAR文件 .tar application/x-tar

(2) 获取文件真实路径

获取文件在硬盘中的路径

需要注意的是:

  • 此处的路径并不是开发环境中的路径,而是部署环境中的路径

    不是 Java 项目的路径,而是 Java 项目部署到 Tomcat 中后的路径

  • webPath 应该填入 web 路径

    \项目路径\ ···

  • 返回文件在硬盘中的真实路径

    ··· \Tomcat\webapps\项目路径\ ···

方法 说明
String getRealPath(String webPath) 获取文件的真实路径

四、Session 域

Java Session

五、Request 域

Request,即请求,其作用域是当前请求,一般用于在请求转发的多个资源之间共享数据。

Java Request

参考