ServletContext及相关案例

ServletContext对象 (域对象)

定义:WEB容器在启动时,它会为每个WEB运用程序都创建一个对应的ServletContext对象,它代表当前WEB运用。

一个WEB运用对应一个ServletContext对象

一个WEB运用下有多个Servlet程序

所有的Servlet程序都共享同一个ServletContext对象

作用

1、获取WEB运用的全局初始化参数         案例和ServletConfig类似

String getInitParameter(String name)

Enumeration getInitParameters()

配置全局初始化参数    在<Servlet>外面

<Context-param>

<param-name>assasasa</param-name>

<param-value>fdsfdsfsd<param-value>

</Context-param>

2、实现数据共享

void setAttribute(String name,Object object) 存入数据

void removeAttribute(String name)    删除数据

  • object getAttribute(String name)   获取数据

3、读取资源文件

InputStream getResourceAsStream(String path)  通过文件地址获取输入流

String getRealPath(String path)  通过文件地址获取文件的绝对磁盘路径

统计网站访问量

package cn.idcast.Servlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletCount extends HttpServlet {
	/**
	 * 实例被创建,调用init进行初始化 在域对象存入一个变量,初始化为0
	 */
	public void init() throws ServletException {
		getServletContext().setAttribute("count", 0);
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		/**
		 * 每一次访问,都会执行该方法 获得count的变量,每次访问count都会自增,再存入到域对象中
		 */
		ServletContext sc = getServletContext();
		// 因为count 是数字,所以用integer
		Integer count = (Integer) sc.getAttribute("count");
		// ++i是先处理完加法,再做其它运算, i++是处理完相关运算(执行完一条语句后)后自加
		sc.setAttribute("count", ++count);
		// 向页面输出内容
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().write("<h3>下次再来</h3>");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

  

package cn.idcast.Servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletShow extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Integer count = (Integer) getServletContext().getAttribute("count");
		// 向页面输出内容
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().write("<h3>一共访问了" + count + "次</h3>");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

  

时间: 2024-08-06 12:43:09

ServletContext及相关案例的相关文章

关于DOM的事件操作/DOM介绍/关于DOM操作的相关案例

一.关于DOM的事件操作 1.JavaScript基础分为三个部分: ECMAScript: JavaScript的语法标准,包括变量,表达式,运算符,函数,if语句,for语句 DOM: 文档对象模型, 操作网页上的元素的API, 比如让盒子移动, 变色,  轮播图等.. BOM: 浏览器对象模型, 操作浏览器部分功能的API, 比如让浏览器自动滚动 2.事件 JS是以事件驱动为核心的一门语言 3.事件的三要素 (1).事件的三要素: 事件源, 事件, 事件驱动程序 (2).总结: 事件源:

6.Maven聚合和继承,相关案例配置

 1有时候一个项目中有很多个模块,要想各个模块之间影响较小,可以将每个模块拿出来作为一个项目模块,对每个项目模块进行独立的开发. 2在这些过程中会遇到关于聚合和继承的问题. 3何为聚合? A如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合,也就是说当我们点击一个pom的时候,同时运行多个项目模块.这时候要用到以下的标签,将各个项目模块整合在一起. <modules> <module>-</module> </modules> 4何为继承

区块链与公证、记录相关案例

Stampery是一家想用比特币的区块链代替公证人的创业公司.你可以用Stampery证明任何文件.它的创始人表示:"你可以为任何文件生成不可改变的.准确的证明,证明其存在性和完整性.世界上的任何人都可以不花一分钱自动证明某个文件是在何时创建的且之后再未改动过,相比于文件公证,Stampery的优势在于你不必带着纸质文件亲自去公证人那里,可节省不少时间.我们不是受信的证明人.这意味着即使Stampery不复存在,我们生成的每个证明依然能够被验证,我们没有会被黑客攻击的集中化数据库.由于法律证明是

DOM操作相关案例 模态对话框,简易留言板,js模拟选择器hover,tab选项卡,购物车案例

1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; }

12-关于DOM操作的相关案例

1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; }

13-javascript-DOM操作的相关案例

1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; }

会话_课后回顾和相关案例

1.课程回顾: 会话管理: 1.会话管理:管理浏览器与服务器之间的会话过程产生的会话数据 2.Cookie技术:会话数据保存在浏览器的客户端 Cookie核心的API: 2.1在服务器端创建Cookie对象 Cookie cookie = new Cookie(name,value) 2.2把cookie发送给浏览器端(通过响应头:set.cookie) response.addCookie(cookie) 2.3 浏览器带着cookie信息访问服务器(通过请求头),服务器就能得到Cookie信

IO流相关案例

1.1 复制文本文件的5种方式A:利用基本流一次读写一个字符B:利用基本流一次读写一个字符数组C:利用缓冲流一次读写一个字符D:利用缓冲流一次读写一个字符数组E:利用缓冲流的特有方法一次读写一个字符串1.1.1 案例代码十二: package com.itheima_06; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWrit

三剑客grep和sed相关案例

1.grep(-i -n -w -A -B -C -l -R -E)1.1grep -l 只找出来文件名,不显示内容1.2.grep -R 递归进行过滤,使grep 后面可以加目录 1.3.grep -A(after) 显示找出来的内容及接下来的几行1.4.grep -B(before) 显示找出来的内容及上面的几行1.5.grep -C(-C2==-A2 -B2) 显示找出来的内容及上下的几行2.sed 流编辑器(增删改查)2.1 sed -n(p-print显示)取消默认输出,若不加-n,会