您的位置:首页 > 运维架构 > Tomcat

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

2015-08-06 09:59 513 查看
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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: