Menu

Sample4

Abstract

This sample show us how to configure a PropertyFinder inside a Servlet, in order to get properties that might change during the execution of a web application.


Este ejemplo nos muestra cómo configurar un PropertyFinder dentro de un Servlet, de modo de obtener propiedades que pueden cambiar durante la ejecución de la aplicación web.

sample.properties

var=Hola Mundo SCF

Environment

sysprop.config.root= <parent dir of sample.properties>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <display-name>ServletSCF</display-name>

 <servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>ar.com.scf.web.TestServlet</servlet-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>${sysprop.config.root}/sample.properties</param-value>
  </init-param>
 </servlet>

 <servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/*</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>index.html</welcome-file>
 </welcome-file-list>
</web-app>

TestServlet.java

package ar.com.scf.sample04;

import java.io.File;
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;

import ar.com.scf.IPropertyFinder;
import ar.com.scf.IPropertyReplacer;
import ar.com.scf.impl.ComposedPropertyFinder;
import ar.com.scf.impl.PropertyFinder;
import ar.com.scf.impl.PropertyReplacer;
import ar.com.scf.impl.SystemPropertyFinder;

public class TestServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;

  private IPropertyFinder finder;

  private IPropertyReplacer replacer;

  @Override
  public void init(ServletConfig config) throws ServletException {
    super.init(config);

    SystemPropertyFinder system = new SystemPropertyFinder();
    ComposedPropertyFinder finder = new ComposedPropertyFinder(system);
    replacer = new PropertyReplacer(finder);

    String path = config.getInitParameter("config");
    File file = new File(replacer.expand(path));
    finder.add(new PropertyFinder(file));

    this.finder = finder;
  }

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    String value = finder.getProperty("var");
    resp.getOutputStream().write(value.getBytes());
  }
}

output

Hola Mundo SCF

Related

Wiki: Samples

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.