servlet初识servletConfig

package day09;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ConfigDemo extends HttpServlet {

	private static final long serialVersionUID = 7251449372723913413L;

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		/*
		 * 在servlet中频繁的信息修改和切换的话是很麻烦的,我们写成硬代码的话,修改也很困难!
		 * 所以在servlet的生命周期中有一个很重要的对象:被高度封装了的servlet的配置信息的对象
		 * servletConfig!
		 * 
		 * 但是如果我们要通过覆盖init的有参构造,通过其中的有参构造去获得其中的信息的话,是很麻烦的
		 * 所以我们要通过一种特殊的方法去进行;因为java的设计者考虑到了我们要获取servletConfig对象
		 * 的需求
		 * 
		 * 所以在servlet的成员变量中提供了被private修饰的servletConfig的变量
		 * 我们只需要在继承了Servlet的方法中调用getServletConfig方法就可以得
		 * 到servletConfig对象
		 *  
		 */
		ServletConfig servletConfig = this.getServletConfig();
		/*
		 * 以下的方法就是获得参数的:
		 * servletConfig.getInitParameter("name");
		 * servletConfig.getInitParameterNames();
		 */
		String path = null;
		/*
		 * 读取到init-param中的参数
		 * <servlet>
    			<servlet-name>ConfigDemo</servlet-name>
    			<servlet-class>gz.itcast.f_config.ConfigDemo</servlet-class>
    			
    			<!-- servlet的初始化参数 -->
    			<init-param>
    				<param-name>path</param-name>
    				<param-value>e:/aaa.txt</param-value>
    			</init-param>
    
  		    </servlet>

		 */
		path = servletConfig.getInitParameter("path");
		System.out.println(path);
		
		BufferedReader br = new BufferedReader(new FileReader(path));
		String value = null;
		while((value = br.readLine()) != null) {
			System.out.println(value);
		}
		br.close();
	}
}

posted @ 2018-05-01 10:14  五彩世界  阅读(262)  评论(0编辑  收藏  举报