Írta: tom1964h

Java servlet indítása

Azaz a Property file használata servlet-ek esetében

Alapvetően fontos, hogy a kapcsolatokat (adatbázis connect-ek, username, stb.) ne a kódba “égessük be”, hanem külön file-ban tároljuk le a tulajdonságok leírását:

  • ez a Property file (neve lehet config.conf, properties.prop stb….)
  • helyreállítás, portolás, szállítás vagy egyéb más esetben is könnyebb a property file-on keresztül naprakésszé tenni a működést
  • a servlet (pl.TestServlet) indításakor (backend) a konténer innen olvassa be az elérési adatokat
  • szerkezete: kulcs: érték, pl.: – dbusername=....dbpassword=....
  • a property-állomány helyét át kell adni a TestServlet-nek: – vagy kell egy változó a TestServlet.java-ba, amely az elérési utat tartalmazza ezt: private static final String LOCATION = "..."; <- ide az elérési utat kell beírni (ez nem változik futási időben); – vagy egy környezeti változóba is berakhatom ezt az elérési utat és onnan is ki tudja szedni a Java: le kell tárolni valamilyen néven és az .init() metódus elején beolvashatom: System.getenv("...."); (ezzel elrejthető ez az érték is);
  • a property beolvasása (külső file esetén) - minden esetben TRY-CATCH-FINALLY ágban megvalósítandó: – importot beírni az elejére: import java.util.Properties; – az init() metódusba berakni: Properties pr = new Properties(); File conf = new File(LOCATION); if (conf.exists() && conf.canRead()) { pr.load(new FileInputStream(conf) ... } – példányosítok egy File objektumot a megadott filenévvel, és ha létezik és olvasható, akkor egy névtelen FileInputStream-en keresztül rendesen kezelhető Properties-t példányosítok vele – ezzel kiszedhető a config file-ból a szükséges adat: pl. String username = pr.getProperty("dbusername");
  • az .init() petódus csak egyszer fut le a servlet inditásakor