设置和检索Servlet的初始化参数


1.方法一

使用ServletConfig检索Servlet的初始化参数
编写ConfigDemoServlet程序,为其传递2个初始化参数:
email参数值为:hacker@163.com,
telephone参数值为8899123,将URL映射设置为/configDemo.do。

1.1 代码

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 任务1:使用ServletConfig检索Servlet的初始化参数
	步骤1:编写ConfigDemoServlet程序,为其传递2个初始化参数:
	email参数值为:hacker@163.com,telephone参数值为8899123,
	将URL映射设置为/configDemo.do。
 */
//@WebServlet("/ConfigDemoServlet" )
@WebServlet(
		urlPatterns = { "/ConfigDemoServlet" }, 
		initParams = { 
				@WebInitParam(name = "email", value = "hacker@163.com"), 
				@WebInitParam(name = "telephone", value = "8899123")
		})
public class ConfigDemoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;	
	String servletName=null;
	ServletConfig config=null;
	String email=null;
	String telephone=null;
	public void init(ServletConfig config) {
		System.out.println("初始化 init()开始");
	try {
		super.init(config);
	} catch (ServletException e) {
		e.printStackTrace();
	}
	this.config = config;
	servletName = config.getServletName();
	email = config.getInitParameter("email");
	telephone = config.getInitParameter("telephone");
	}
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) 
			throws ServletException, IOException {
	      response.setContentType("text/html;charset=gb2312");
	      PrintWriter out = response.getWriter();
	      out.println("<html><body>");
	      out.println("Servlet名称:"+servletName+"<br>");
	      out.println("Email地址:"+email+"<br>");	
	      out.println("电话:"+telephone);
	      out.println("</body></html>");
	}
	protected void doPost(HttpServletRequest request, 
			HttpServletResponse response) 
			throws ServletException, IOException {
		doGet(request, response);
	}
}
ServletConfig接口:
用来封装Servlet实例的初始化配置信息,
该接口的实例被Servlet接口中的init(ServletConfig)方法所使用,确保容器对Servlet的初始化
该接口常用方法:
public String getInitParameter(String name):获取Servlet的初始化参数值,
		方法参数时初始化参数的名字,返回值是参数的值。
ServletConfig 接口被 HTTPServlet 类实现, 自定义的 Servlet 类已经间接实现了
ServletConfig 接口,因此在自定义的 Servlet 类中可以使用 this 
调用 ServletConfig 接口中的方法。 		

1.2 运行结果

运行结果

2. 方法二

保持上面的代码不变。
修改web.xml文件,在其中添加下面Servlet定义和初始化参数定义。

2.1 代码

  <servlet>
    <servlet-name>configDemoServlet</servlet-name>
    <servlet-class>com.wei4.ConfigDemoServlet</servlet-class>
    <init-param>
       <param-name>email</param-name>
       <param-value>abc@yahoo.com</param-value>
    </init-param>
    <init-param>
      <param-name>telephone</param-name>
      <param-value>110110119</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
     <servlet-name>configDemoServlet</servlet-name>
     <url-pattern>/configDemo.do</url-pattern>
  </servlet-mapping>
<init-param> 标记:
<param-name> 参数名
<param-value> 参数值
如果某个Servlet需要在应用加载时就被实例化,而不是等到第一次访问时才实例化,
可在web.xml中通过配置<load-on-startup>来实现。
<load-on-startup>1</load-on-startup>中的 1 表示实例化该Servlet实例的顺序为第一个,
而不是实例化的数量,该标记的值为非负数。
默认情况下,Servlet的实例是第一次被加载时初始化,且只初始化一次。

2.2 运行结果

运行结果

2.3 发现

通过两个运行结果,发现方法一设置的email和phone参数的和方法二设置的email和phone参数,
检索Servlet的初始化参数时 方法二设置的参数优先。

2021-1-3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值