菜鸟学Android笔记(二十四):ServletContext1

一、ServletContext的概念

web容器在启动时,它会每个web应用程序创建一个对应的ServletContext对象,它代表当前的web应用

二、如何获取ServletContext对象?

方法1:ServletContext scontext=Congfig.getServletContext();

方法2:ServletContext scontext=this.getServletContext();

三、ServletContext的作用

1、作为域对象可以在整个web应用范围内共享数据

什么是域对象?即能在整个web共享数据的对象

假如web应用的classes中有两个java文件

一个是:Demo2Servlet.java:

package com.java;

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 Demo2Servlet extends HttpServlet{

	@Override
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		ServletContext context=this.getServletContext();
		context.setAttribute("apple", "red apple");
	}

	@Override
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doGet(req,resp);
	}
    
}

另外一个是Demo2Servlet.java:

package com.java;

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 Demo3Servlet extends HttpServlet{

	@Override
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		ServletContext context=this.getServletContext();
		String v=(String)context.getAttribute("apple");
		System.out.println(v);
	}

	@Override
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doGet(req,resp);
	}
    
}

当在浏览器输入“http://localhost/Day02/java/Demo2Servlet” ,然后再输入“http://localhost/Day02/java/Demo3Servlet”

这时在控制台就会输出:red apple,数据从Demo2Servlet实现了与Demo3Servlet的共享,这个context对象就是域对象

特性:作用范围

            声明周期:服务器启动,web应用加载后创建ServletContext对象,域生产,当web应用移除容器或服务器关闭后,随着web应用的销毁域销毁

 重要的三个方法:

void setAttribute(String,Object);

Object getAttribute(String);

void removeAttribute


2、获取web应用的初始化参数

第一步:在web.xml中设置参数:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
<context-param>
	<param-name>userName</param-name>
	<param-value>中华</param-value>
</context-param>
<context-param>
	<param-name>password</param-name>
	<param-value>123</param-value>
</context-param>
</web-app> 

第二步:在classes中的文件夹添加Demo4Servlet.java

package com.java;

import java.io.IOException;
import java.util.Enumeration;

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 Demo4Servlet extends HttpServlet{
	
	
	
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		ServletContext context=this.getServletContext();
		Enumeration enumeration=context.getInitParameterNames();
		while(enumeration.hasMoreElements()){
			String name=(String) enumeration.nextElement();
			String value=context.getInitParameter(name);
			System.out.println(name+":"+value);
		}
	}

	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doGet(req,resp);
	}

}

第三步:在web.xml中设置访问Demo4Servlet.ajva的路径

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
<context-param>
	<param-name>userName</param-name>
	<param-value>中华</param-value>
</context-param>
<context-param>
	<param-name>password</param-name>
	<param-value>123</param-value>
</context-param>
<servlet>
        <servlet-name>Demo4Servlet</servlet-name>
        <servlet-class>com.java.Demo4Servlet</servlet-class>
    </servlet>
     <servlet-mapping>
        <servlet-name>Demo4Servlet</servlet-name>
        <url-pattern>/java/Demo4Servlet</url-pattern>
    </servlet-mapping>
</web-app>

第四步:在浏览器中输入“http://localhost/Day02/Demo4Servlet.java”

然后myeclipse就会打印出:

userName:中华
password:123

ps:小知识点

请求参数 parameter-----------浏览器发送过来的请求中的参数信息

初始化参数 intparameter----在web.xml中为ServletContext配置的初始化时带有的基本参数

域属性attribute-----------四大作用域中的键值对


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值