Javaweb学习笔记之ServletConfig

在 web.xml 中配置初始化参数:  

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>02_Servlet</display-name>
  
  <servlet>
    <servlet-name>ConfigDemo1</servlet-name>
    <servlet-class>com.demo.g_servletconfig.ConfigDemo1</servlet-class>
    <init-param>
      <param-name>path</param-name>
      <param-value>D:/b.txt</param-value>
    </init-param>
    <init-param>
      <param-name>AAA</param-name>
      <param-value>AAA's value</param-value>
    </init-param>
    <init-param>
      <param-name>BBB</param-name>
      <param-value>BBB's value</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>ConfigDemo1</servlet-name>
    <url-pattern>/ConfigDemo1</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

package com.demo.g_servletconfig;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/*
ServletConfig 对象:
	作用:
		主要用于加载 servlet 的初始化参数;
		
	ServletConfig 对象的创建和得到:
		创建时机:在创建完 servlet 对象之后,在调用 init 方法之前;
		得到对象:	1、直接从有参数的 init 方法中得到;
				2、直接使用 this.getServletConfig() 也可以获取;
		
	ServletConfig 的 API:
		getInitParameter(String name):根据参数名获取参数值;
		getInitParameterNames():获取所有参数的集合;
		getServletName():获取 Servlet 的名称;
		getServletContext():获取 Servlet 上下文对象;
 */

@SuppressWarnings("serial")
public class ConfigDemo1 extends HttpServlet {

//	private ServletConfig config;
	
	/*
	 * 1)、tomcat 服务器把 web.xml 中配置的初始化参数封装到 ServletConfig 中(在加载 web 应用的时候);
	 * 2)、tomcat 服务器调用 init 方法传入 ServletConfig 对象;
	 */
//	@Override
//	public void init(ServletConfig config) throws ServletException {
//		this.config = config;
//	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		// 获取 servlet 的初始化参数(使用 init 方法获取的 ServletConfig 对象)
//		String path = config.getInitParameter("path");
		
		// 直接使用 this.getServletConfig() 获取 ServletConfig 对象
		// 注意:使用 this.getServletConfig() 获取 ServletConfig 对象的时候 init 方法不能存在,否则获取不到 ServletConfig 对象;
		String path = this.getServletConfig().getInitParameter("path");
		
		// 读取文件数据
//		String path = "D:/a.txt";
		File file = new File(path);
		FileReader reader = new FileReader(file);
		BufferedReader bReader = new BufferedReader(reader);
		String line = null;
		while((line = bReader.readLine()) != null){
			System.out.println(line);
		}
		bReader.close();
		
		// 获取当前 servlet 的所有初始化参数
		Enumeration<String> enums = this.getServletConfig().getInitParameterNames();
		while(enums.hasMoreElements()){
			String nextElement = enums.nextElement();
			String initParameter = this.getServletConfig().getInitParameter(nextElement);
			System.out.println(nextElement + "=" + initParameter);
		}
		
		// 获取当前 servlet 的名字
		String servletName = this.getServletConfig().getServletName();
		System.out.println(servletName);
 	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值