当前课程知识点:Web后端开发技术 >  第2章 Servlet技术基础 >  2.6 ServletContext接口 >  2.6.1 ServletContext接口

返回《Web后端开发技术》慕课在线视频课程列表

2.6.1 ServletContext接口在线视频

下一节:2.7.1 获取请求报文信息

返回《Web后端开发技术》慕课在线视频列表

2.6.1 ServletContext接口课程教案、知识点、字幕

欢迎大家回来继续学习web后端

开发技术

这一小节我们将讲

Servlet

Context接口

Servlet

Context的接口是这样的

它又称为 Servlet的上下文

是servlet与servlet

容器之间通讯的接口

Servlet容器在启动的时候

它会为每一个 web应用创建一个

唯一的这样一个Servlet

Context对象

这一点大家一定要记住

这张图来说明

ServletContext

以及ServletConfig

之间的关系

下面我给大家解释一下

一个web应用程序

一个web应用服务器

它包含了Servlet容器

在Servlet容器当中

可能运行着多个 web应用

每一个web应用都是一个

ServletContext

在Servlet

Context

上下文的环境下

运行着各种各样的Servlet

对于每一个Servlet都有一个唯一的

ServletConfig与它相对应

这是Servlet

ServletConfig以及

ServletContext

之间的这种关系

那么如何在Servlet当中获得设备的Servlet

Context的对象

这个方法有这么两个

有这么两个

我们其中使用哪一个都是可以的

对于Servlet

Context接口

它所实现的功能可以分为这么三类

一类是实现与web应用相关的这些

方法的这种功能

第2类

实现与Servlet容器相关的方法

第3类

是与服务器相关的方法

下面我们逐一给大家讲解一下

首先说一下与当前外部应用相关的

方法

因为当前外部应用相关的方法可以

分为这么三大部分

第1部分是初始化参数

这句话的意思其实也是在告诉大家

对于一个web应用

可以做一些初始化工作

那么做初始化工作所使用的方法

就是这里面所提到的 get

Parameter

以及 getInit

ParameterNames

接下来这个方法是 web应用的

一些信息

比如获取context

path

也就是当前web应用的根路径

获取 servlet

context

name

也就是当前web应用的名称

等等

下面这组方法是关于在应用域内进行

属性的存和取的一些方法

属性的存取

实际上就是键值对就是key和void

那么就有Servlet的方法

就有ser的方法

就有get的方法

还有remove这样一些方法

Attribute就是属性的意思

这是与当前外部应用相关的三类方法

下面我们看这样一个事例

在这个事例当中

我们看到在Servlet当中通过get

ServletContext

得到应用上下文

然后通过他进一步得到

context

path

也就是应用的根目录

再去得到当前的应用的名称

然后打印出来

这里面大家就一定要区分开

路径和应用名之间的差别

我们看到这里面是斜线mooc

然后得到的跟路径是斜线mooc

应用的名就是mooc

下面我们演示一个使用应用

域属性进行存取

这个方法来实现网站访问技术的功能

我们来演示一下网站访问技术的这么

一个例子

那么这个网站访问技术的整体思路

就是我需要用一个全局变量

每当有一个用户访问我这个页面的时候

我全局变量就做一个增一的操作

那么全局变量我们可以存储在

ServletContext对象

当中

每次访问的时候给它取出来

然后给它做一个增一的操作就可以了

我们现在来看代码

首先我先建立一个叫做ContextAttributServlet这么

一个 Servlet

那么我们在doget的方法里面

去写相关的代码

首先我们先要有一个叫做

ServletContext的这么一个对象

那么这个对象可以通过附累的

get

ServletContext

对象可以拿到

我把它引入

我那个技术变量

假如说

是存在我的Servlet的

Context变量当中

它的属性名称就是Count

所以说我就可以通过count点

get和Attribute的方法

根据名称count

把这个值给他拿到

注意我这里是用的integer

为什么用integer

因为有可能第1次访问的时候

这个值是不存在的

那么这个值不存在

它就是一个空值

如果你要用普通的 int

它就会出错

我们用它的包装类integer

它是能够存储空值的

因此我们在这里需要判断一下

如果我们的count是等于空的

那么很显然这是第1次访问

我就把这count值给初始化成1

就可以了

那么否则肯定不是第1次访问

我们count就做一个加1的操作

或者大家这么写也是可以的

好了

那么 count自增完以后

我就需要把 count再重新设置

回去

context.set和

Attribute

我们的属性的名称叫count

我们这个值我们已经增益以后的

count值

那么紧接着我可以向页面当中输出了

所以还用我们的print

writer对象

Writer out

request.get

response

.get

Writer

好 然后out.printIn

当前网站访问次数

把我们count值

加起来就可以了

我们 context

Attribute的编码就

已经啊写完了

ContextAttributeServlet

我们是写在 chapter2

这个项目当中的大家要注意一下

所以说我们访问他敲回车

大家可以看到这里输出的是1

那么之所以出乱码是因为我这里出现

的中文

而我这里却没有设置我的中文的编码

方式

我们在第1节课的时候也跟大家说过

我们可以设置request点

set

character

encoding

是UTF-8

response

.set

content

Type

是text

html然后 charset=UTF

-8就可以了

但是大家已经可以看到这里已经访问

是一次了

对吧

如果再一刷新

就会显示的是两次

这会我们重启了

因为重启完以后它的基数就重新变

那么两次

那么同样我打开一个新的浏览器

即使不是这个浏览器

它也会继续的记数 大家看 敲

那么他就从3开始了

所以我们就可以通过 Servlet

的context的对象完成我们

网站的计数这么一个程序

与servlet容器相关的方法

这个方法主要包括获取 Servlet容器的

名称以及版本

以及获取 Servlet

容器所支持的

servlet的

API的主版本号

次版本号等相关的一些信息

还有一个就是记录日志的方法

因为服务器相关的方法使用

servletcontent接口

可以直接访问web

应用的静态资源

获取文件的MIME这种类型

也可以得到它的真实

存放的路径

这些方法在这个表格当中已经列出来了

我们下面简单介绍一下

第1个方法叫做

getRescurceAsStream

也就是说

将指定参数当中这个文件

通过这个方法得到的是一个输入流

第2个方法叫做get

resource

也就是说将指定参数所指定资源转化

为或者说得到的是一个url

类型的对象

第3个方法是用来获取一个文件的

真实的物理存在的这样一个路径

这个方法是非常有用的

下面这个方法是用来获取指定参数了

这个文件的

MIME类型的

下面我们看一个事例

那么这个事例就是使用

context接口相关的方法

来访问服务器上的图片

那么这个图片是存在于images下面

这个名称叫mypic.jpg文件

我们看一下相关的代码

在这里首先在Servlet当中

获取到设备的context

然后通过对象

调用

getResource

AsStream

得到当前的图片的输入字节流

然后它又使用另外一种方式就

getResource

去得到这个图片相对应的 url

这样一个对象

然后这个对象又进一步调用的

Open

stream

同样得到的是一个输入的字节流

在这里面分别他们各自调用的

available

available的方法

它的作用就是返回当前这个流当中的

长度来比较一下

它们两个是不是一样

这个代码的意思就是要比较通过两种

方式读

同样一个文件

它的大小

长度是不是一样

然后下面这个代码来演示

对应于这样一个文件

这是一个虚拟的路径

它的真实的路径是什么样的

就是通过getRealPath

然后下边是通过get

MIME type来返回

文件的mime类型的

这个是它的执行结果

我们看到通过两种方式访问的同样的

一个图片

它的长度是一样的

这个结果应该是一样的

不可能是不一样

然后我们看到这个图片的真实路径是

放在c盘

什么文件夹路径下面的

这个功能是非常有用的

比如我们从网上下载图片的时候

我们不希望直接下载的图片

我们就可以通过这种方式

把图片的真实路径读取到

然后再通过其他的方法将这个图片

信息返回给客户

然后这是文件的

MIme类型

本小节我们就讲到这里

Web后端开发技术课程列表:

第1章 Java Web开发准备

-1.0 导学

--1.0.1 导学

-1.1 Web应用开发概述

--1.1.1 Web应用简介

--1.1.2 Web开发技术

--1.1.3 测试

-1.2 准备Java Web应用开发环境

--1.2.1 准备Java Web应用开发环境

--1.2.2 测试

--1.2.3 谈谈JavaWeb优势和学习方法

-1.3 任务实现:Hello World Web项目

--1.3.1 Hello World Web项目

--1.3.2 测试

-1.4 小结

--1.4.1 小结

-本课程所有代码

--课程参考代码

第2章 Servlet技术基础

-2.0 导学

--2.0.1 导学

-2.1 Servlet概述

--2.1.1 Servlet简介

--2.1.2 Servlet API

--2.1.3 测试

-2.2 创建Servlet

--2.2.1 Hello Servlet

--2.2.2 Servlet配置

--2,2,3 作业

-2.3 Servlet应用

--2.3.1 处理超链接请求

--2.3.2 处理form表单请求

--2.3.3 处理结果

--2.3.4 测试

-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)

--2.4.1 注册代码实现

--2.4.2 登录代码实现

--2.4.3 测试

--2.4.4谈一谈jQuery前端开发框架

-2.5 ServletConfig接口

--2.5.1 ServletConfig接口

-2.6 ServletContext接口

--2.6.1 ServletContext接口

-2.7 HttpServletRequest接口

--2.7.1 获取请求报文信息

--2.7.2 上传照片

--2.7.3 获取网络连接信息

--2.7.4 存取请求域属性

--2.7.5 测验

--2.7.6 在请求转发和重定向过程中传递数据

-2.8 HttpServletResponse接口

--2.8.1 HttpServletResponse接口

--2.8.2 输出服务器端图片

--2.8.3 测试

-2.9 任务实现:某高校毕业生信息发布系统-简历添加

--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加

-2.10 小结

--2.10.1 小结

-动画演示:Java Web应用服务器处理客户端请求的过程

--Java Web应用服务器处理客户端请求的过程

第3章 会话跟踪

-3.0 导学

--3.0.1 导学

-3.1 Cookie技术

--3.1.1 Cookie技术概述

--3.1.2 Cookie技术应用-自动登录

--3.1.3 测试

-3.2 Session技术

--3.2.1 Session技术概述

--3.2.2 Session技术-Session技术应用购物车

--3.2.3 测试

-3.3 URL重写与隐藏表单域

--3.3.1 URL重写技术与隐藏表单域

--3.3.2 测试

-3.4 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改

--3.4.2 讨论会话跟踪技术的应用场景

-3.5 小结

--3.5.1 小结

第4章 JSP基础

-4.0 导学

--4.0.1 JSP导学

-4.1 jsp概述

--4.1.1 JSP概述

--4.1.2 测试

-4.2 脚本元素

--4.2.1 脚本元素

--4.2.2 测试

-4.3 指令元素

--4.3.1 指令元素

--4.3.2 测试

-4.4 动作元素

--4.4.1 动作元素

--4.4.3 测试

-4.5 内置对象

--4.5.1 内置对象(1)

--4.5.2 内置对象(2)

--4.5.3 测试

-4.6 JavaBean

--4.6.1 JavaBean概述

--4.6.2 分步注册

--4.6.3 测试

-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)

--4.7.2 在JSP页面显示内容的都有哪些方法

-4.8 小结

--4.8.1 小结

第5章 表达式语言

-5.0 导学

--5.0.1 表达式语言

--5.0.2 测试

-5.1 el语法

--5.1.1 EL语法

--5.1.2 测试

-5.2 el隐含对象

--5.2.1 EL隐含对象

--5.2.2 测试

-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示

--5.3.2 测试

-5.4 小结

--5.4.1 小结

--5.4.2 讨论el表达式的优势

第6章 标准标签库

-6.0 导学

--6.0.1 标准标签库

--6.0.2 测试

-6.1 核心标签库

--6.1.1 通用标签

--6.1.2 条件标签

--6.1.3 迭代标签

--6.1.4 URL标签

--6.1.5 测试

-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)

--6.2.2 测试

-6.3 小结

--6.3.1 小结

--6.3.2 讨论如何实现自定义标签

第7章 Filter和Listener

-7.0 导学

--7.0_导学

-7.1 过滤器

--7.1.1过滤器(1)

--7.1.2过滤器(2)

--7.1.3 测试

-7.2 监听器

--7.2.1.1与ServletContext相关的监听器

--7.2.1.2示例:访问网站计数功能

--7.2.2.1与Session相关的监听器

--7.2.2.2示例:显示在线用户名称

--7.2.3.1与Request相关的监听器

--7.2.3.2示例:实时显示访问网站用户信息示例

--7.2.4 测试

-7.3 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录

--7.3.2 测试

-7.4 小结

--7.4.1小结

--7.4.2讨论filter和listener使用场景

第8章 JDBC

-8.0 导学

--8.0_导学

-8.1 JDBC API

--8.1.1 JDBC API

--8.1.2 测试

-8.2 JDBC API访问MySQL基本步骤

--8.2.1 JDBC API

--8.2.2 测试

-8.3 任务实现:某高校毕业生信息发布系统-注册与登录

--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)

--8.3.2 测试

-8.4 小结

--8.4.1小结

--8.4.2 讨论JDBC工具类

第9章 某高校毕业生信息发布系统开发

-9.0导学

--9.0导学

-9.1 技术准备

--9.1.1技术准备-MVC模式

--9.1.2技术准备-Ajax技术

--9.1.3技术准备-jQuery对Ajax的实现

--9.1.4_技术准备- JDBC工具类

--9.1.5 测试.

-9.2 系统设计

--9.2系统设计:某高校毕业生信息发布系统开发

-9.3 系统实现

--9.3.1完善登陆和注册功能

--9.3.2完善简历添加功能

--9.3.3完善简历修改功能

--9.3.4.1首页分页显示

--9.3.4.2首页分页显示

-9.4 小结

--9.4.1小结

--9.4.2讨论:分页组件

2.6.1 ServletContext接口笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。