首页 > 代码库 > 关于Servlet的getInitParameter的使用

关于Servlet的getInitParameter的使用

    getInitParameter方法来自于GenericServlet,一般创建Servlet都是继承自HttpServlet,而HttpServlet是GenericServlet的子类,由此通常我们的Servlet都是可以调用该方法去获取web.xml配置文件中的配置信息:

    1、web.xml部分信息:

        <!-- 全局配置 -->
        <context-param>
		<param-name>global</param-name>
		<param-value>Okes</param-value>
	</context-param>

	<servlet>
		<servlet-name>TestServlet</servlet-name>
		<servlet-class>com.web.servlets.TestServlet</servlet-class>
		<!-- 局部配置,即TestServlet的配置 -->
		<init-param>
			<param-name>name</param-name>
			<param-value>wangzp,tanhq</param-value>
		</init-param>
		
		<init-param>
			<param-name>name1</param-name>
			<param-value>wangzp1,tanhq1</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>TestServlet</servlet-name>
		<url-pattern>/test.do</url-pattern>
	</servlet-mapping>

    2、如果获取局部配置以及全局配置

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

		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		/**
		 * 获取<init-param></init-param>中的属性
		 * name : <init-name>name</init-name>
		 * value : <init-value>value</init-value>
		 * 通过getInitParameter(name)就可以获取value中的值
		 */
		out.println(getInitParameter("name"));
		
		/**
		 * 当有多个上述中的标签时,那么可以使用getInitParameterNames
		 * 获取所有的属性名称,然后通过getInitParameter获取对应的属性值
		 */
		Enumeration enums = getInitParameterNames();
		while(enums.hasMoreElements()){
			System.out.println(enums.nextElement());
		}
		/**
		 * 获取全局属性配置:
		 * 1、必须通过getServletConfig(),或者getServletContext(),然后调用          getInitParameter方法获取;
		 * 2、全局标签<context-param></context-param> 
		 */
		out.println(getServletContext().getInitParameter("global"));
		
		out.flush();
		out.close();
	}

    3、总结

    3.1 局部Servlet配置属性获取:使用getInitParameter或者getInitParameterNames;

    3.2 全局Servlet配置属性获取:使用servletConfig或者ServletContext对象调用getInitParameter获取即可

    

本文出自 “java程序冥” 博客,请务必保留此出处http://793404905.blog.51cto.com/6179428/1540259