servlet中servletContext的五大作用(二)

1.    获取web的上下文路径

2.    获取全局的参数

3.    作为域对象使用

4.    请求转发

5.    读取web项目的资源文件


package day10.about_servletcontext.get_init_arameter;

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;
/**
 * 【context对象的作用-2】:获取全局的参数
 *  	首先要到web.xml中进行全局参数的配置
 *  
 * 
 *	<context-param>
  		<param-name>AAA</param-name>
  		<param-value>AAA'value</param-value>
  	</context-param>
  	
 *	@author mzy 	
 */
public class ContextDemo02 extends HttpServlet {

	private static final long serialVersionUID = -4589027275888804319L;

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		ServletContext context = this.getServletContext();
		System.out.println(context.getInitParameter("AAA"));
		Enumeration<String> names = context.getInitParameterNames();
		
		// 遍历所有参数
		while(names.hasMoreElements()) {
			String name = names.nextElement();
			String value = context.getInitParameter(name);
			System.out.println(name+"="+value);
		}
		
		/*
		 * 从这里我们来分析ServletContext的context-param参数
		 * 和ServletConfig的init-param参数的区别:
		 * 
		 * 首先这个context参数是全局的,放在servlet的外部
		 * 而config的init参数是局部的,放在servlet的内部
		 * 
		 * 所以context-param是全局的。
		 * 该网站下的任何servlet都可以通过servletContext对象
		 * 来获取到全局参数!!!
		 * 
		 * 但是其实context-param参数既可以放到servlet内部;
		 * 也可以放到servlet外部,区别就是全局和局部的区别。
		 * 
		 * 
		 * 如果整个网站都要用的话,就设置成全局的;
		 * 如果只是这个servlet中要使用的话,就设置成局部的。
		 */
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
	
	}

}

原文地址:https://www.cnblogs.com/mzywucai/p/11053520.html