ServletContext接口(一)获取Web应用程序的初始化参数

ServletContext接口简介

WEB容器在启动时,它会为每个WEB应用程序都创建一个唯一的ServletContext对象代表当前应用,ServletContext对象包含Web应用中所有 Servlet 在 Web 容器中的一些数据信息。ServletContext随着Web应用的启动而创建,随着 Web 应用的关闭而销毁。一个 Web 应用只有一个ServletContext 对象。
ServletContext中不仅包含了 web.xml 文件中的配置信息,还包含了当前应用中所有Servlet可以共享的数据。可以这么说, ServeltContext 可以代表整个应用,所以ServletContext有另外一个名称:application。

1. 获取Web应用程序的初始化参数

在web.xml文件中,不仅可以配置Servlet的初始化信息,还可以配置整个Web应用的初始化信息。

配置web.xml文件

<context-param>
		<param-name>companyName</param-name>
		<param-value>csdn</param-value>
	</context-param>
	<context-param>
		<param-name>address</param-name>
		<param-value>beijing</param-value>
	</context-param>
	<servlet>
		<description></description>
		<display-name>TestServlet03</display-name>
		<servlet-name>TestServlet03</servlet-name>
		<servlet-class>servletpractice.TestServlet03</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>TestServlet03</servlet-name>
		<url-pattern>/TestServlet03</url-pattern>
	</servlet-mapping>

创建Servlet类TestServlet03

注:Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。
这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。尽管如此,它还是使用在诸如Vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API类,并且在应用程序中也广泛被使用

public class TestServlet03 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		/*
		 * response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,
		 * 并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
		 * 例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。
		 */
		response.setContentType("text/html;charset=utf-8");
		/*
		 * response.getWriter()返回的是PrintWriter,这是一个打印输出流。
		 * response.getWriter().print(),不仅可以打印输出文本格式的(包括html标签),
		 * 还可以将一个对象以默认的编码方式转换为二进制字节输出
		 */
		PrintWriter out = response.getWriter();
		// 得到ServletContext对象
		ServletContext context = this.getServletContext();
		// 得到包含所有初始化参数名的Enumeration对象
		Enumeration<String> paramNames =context.getInitParameterNames();
		out.println("all the paramNames and paramValue are following:<br>");
		// 遍历所有的初始化参数名,得到相应的参数值并打印
		while (paramNames.hasMoreElements()) {
			String name = paramNames.nextElement();
			String value = context.getInitParameter(name);
			out.println(name + ": " + value);
			out.println("<br />");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
	//浏览器测试网址 http://localhost:8080/chapter03/TestServlet03
}

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心醉瑶瑾前

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值