Tomcat 如何设置系统配置参数及加载

Tomcat是一款服务器软件,其含有Servlet的容器,而servlet的目的就是为了对HTTP请求进行应答。

Tomcat在启动时,可以通过设置,使其自动加载某些servlet,这样,就可以通过自加载的Servlet加载系统的配置参数,并在编程中使用,下边就讲解如何设置:

首先在web.xml配置文件中,新建一个Sevlet标签,并将系统配置参数设置为该Servlet的初始化参数

  <servlet>
    <servlet-name>LoadConfig</servlet-name>
    <servlet-class>com.founder.loadconfig.LoadConfig</servlet-class>
    <init-param>
      <param-name>WebServerURL</param-name>
      <param-value>http://172.19.43.132:8010</param-value>
    </init-param>
    <init-param>
      <param-name>EWBURL</param-name>
      <param-value>No_Watting_Set</param-value>
    </init-param>
    <init-param>
      <param-name>MacAddress</param-name>
      <param-value>ZGRS5-1</param-value>
    </init-param>
    <init-param>
      <param-name>Pin</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>ScanPath</param-name>
      <param-value>C:/ScanPath...</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoadConfig</servlet-name>
    <url-pattern>/LoadConfig</url-pattern>
  </servlet-mapping>

通过设定LoadConfig的init-param标签,我们可以设定该Servlet的一系列初始化参数及值:WebServerURL、MacAddress、Pin、ScanPath等,这些参数都是系统配置中需要设定的。

其中,load-on-startup标签的设置,值为0,1,2,3...等,值越小,Tomcat启动时加载的优先级越高;如果不设置,或者为负数,只有在请求时,该Servlet才被加载。

<load-on-startup>0</load-on-startup>

在web.xml中配置好系统参数后,如何获取到呢?通过LoadConfig类的init(ServletConfig config)方法,获取配置参数,并利用ServletContext类将这些参数设置为Tomcat中共享的属性,代码如下:

public class LoadConfig extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoadConfig() {
        super();
    }

	@Override
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		
		//获取初始化数据
		String WebServerURL = config.getInitParameter("WebServerURL");
		String EWBURL = config.getInitParameter("EWBURL");
		String MacAddress = config.getInitParameter("MacAddress");
		String Pin=config.getInitParameter("Pin");
		String ScanPath=config.getInitParameter("ScanPath");
		
		//设置应用共享配置变量
		ServletContext context = getServletContext();
		context.setAttribute("WebServerURL", WebServerURL);
		context.setAttribute("EWBURL", EWBURL);
		context.setAttribute("MacAddress", MacAddress);
		context.setAttribute("Pin", Pin);
		context.setAttribute("ScanPath", ScanPath);
		
		
	}
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//do nothing
	}


	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

这样,只要启动Tomcat,这些系统配置,就可以在任何其他servlet类中获取,也是利用ServletContext类,代码如下:

//从配置中,获取主网站地址 , Mac地址
		ServletContext context= getServletContext();
		String webURL = (String) context.getAttribute("WebServerURL");
		String macAddress = (String) context.getAttribute("MacAddress");




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值