Servlet kuntekstaj aŭskultantoj – Kiel uzi?

Servlet

Servlet

Superrigardo: En ĉi tiu artikolo ni parolos pri la servlet kuntekstaj aŭskultantoj. Servlet kunteksta aŭskultanto estas fasado kiu ricevas sciigajn eventojn pri la serlvet kunteksto lifecycle ŝanĝoj. Servlet Kuntekstaj aŭskultantoj estas ankaŭ uzita al initialize datumaraj konektoj, Arbohakanta kaj aliaj rimedoj kiu estas uzita en la apliko.

Servlet kunteksto estas kreita dum ni deplojiĝas la araneaĵan aplikon. Unufoje servlet kunteksto estas kreita ĝin estos uzita de ĉiuj alia servlets kaj jsps. Servlet kunteksto estas ankaŭ sciita kiel la aplika amplekso en araneaĵaj aplikoj.

Difinanta servlet kunteksta aŭskultanto:
La aŭskultanta klaso devas efektivigi la ServletContextListener fasado kaj devus provizi implmentation por contextIntialized() Kaj contextDestroyed() Metodoj. Lasi nin konsideri la sekvantan kodan ereton:

Enlistiganta 1: Ekzempla kodo por Hibernate kunteksta aŭskultanto klaso efektiviganta ServletContextListener fasado

[Kodo]

Pako Com.Hejme.Servletlisteners;

Importaĵo Javax.Servlet.ServletContextEvent;

Importaĵo Javax.Servlet.ServletContextListener;

Importaĵo Com.Hejme.Hibernate.HibernateUtil;

Publika Klaso HibernateContextListener Efektivigas ServletContextListener{

Publika Malplena ContextInitialized(ServletContextEvent sce) {

HibernateUtil.InitSessionFactory();

Sistemo.Ekstere.Println(“HIBERNATE SESIA FABRIKO INITIALIZED”);

}

Publika Malplena ContextDestroyed(ServletContextEvent sce) {

Se (HibernateUtil.GetSessionFactory()!=Null) {

HibernateUtil.GetSessionFactory().Egale();

}

Sistemo.Ekstere.Println(“HIBERNATE SESIA FABRIKO DETRUIS”);

}

}

[/Kodo]

La supra java kodo estas efektiviganta la servlet kunteksta aŭskultanto fasado. Ĉi tiu klaso vokas la initiatilizeSessionFactory metodo de Hibernate util klaso. Tio ĉi estas ekzempla aplika kodo kiu postulas hibernate sesio esti havebla por la tuta daŭro de la apliko. Nur kiel ajna alia rimedo la apliko postulas hibernate sesio esti aktiva kasregistrilo la aplika servilo estas elŝaltita. Kiam la aplika servilo estas elŝaltita nin devus certigi ke la rimedoj kiu estis kreita ĉe la tempo de noventrepreno devus esti liberigita. Ebligi tion ĉi ni uzas la contextDestroyed metodo kaj liberigi la rimedojn kiu estis kreita en la contextInitialized metodo. La hibernate util klaso kiu intializes la sesia fabriko povus esti kiel nesufiĉe:

Enlistiganta 2: Hibernate Util klaso

[Kodo]

Pako Com.Hejme.Hibernate;

Importaĵo Org.Hibernate.SessionFactory;

Importaĵo Org.Hibernate.Cfg.Konfiguracio;

Publika Klaso HibernateUtil {

Privata Senmova SessionFactory SessionFactory;

/**

* Initializes la Hibernate SessionFactory.

*/

Publika Senmova Samtempigita Malplena InitSessionFactory() {

Se (GetSessionFactory() != Null) {

Ĵeti Nova IllegalStateException(

“Hibernate SessionFactory estas jam initialized”);

}

Provo {

// Krei la SessionFactory de la hibernate.Cfg.Xml

SessionFactory = Nova Konfiguracio().Formi().BuildSessionFactory();

} Kaptaĵo (Escepto e) {

Ĵeti Nova ExceptionInInitializerError(E);

}

}

Publika Senmova Samtempigita SessionFactory getSessionFactory() {

Provo {

SessionFactory = Nova Konfiguracio().Formi()

.BuildSessionFactory();

} Kaptaĵo (Throwable eksa) {

Sistemo.Erari.Println(“Malsukcesita krei sessionFactory objekto.” + Eksa);

Ĵeti Nova ExceptionInInitializerError(Eksa);

}

Reveno SessionFactory;

}

}

[/Kodo]
Servlet kuntekstaj aŭskultantoj estas ankaŭ uzita fiksi kuntekstajn ecojn kiu estas uzita poste en la apliko. La sekvanta koda ereto estas ekzemplo kiu estas fiksanta kelkajn parametrojn en la kunteksto esti uzita de la apliko:

Enlistiganta 3: Ekzempla eco fikso en la kunteksto

[Kodo]

Pako Com.Hejme.Servletlisteners;

Importaĵo Javax.Servlet.ServletContextEvent;

Importaĵo Javax.Servlet.ServletContextListener;

Publika Klaso SampleServletContextListener Efektivigas ServletContextListener {

Publika Malplena ContextInitialized(ServletContextEvent sce) {

Sce.GetServletContext().SetAttribute(“DEFAŬLTA_LINGVA_ECO”,

“English”);

Sistemo.Ekstere.Println(“DEFAŬLTA LINGVO INITIALIZED”);

}

Publika Malplena ContextDestroyed(ServletContextEvent sce) {

Sistemo.Ekstere.Println(“KUNTEKSTO DETRUIS”);

}

}

[/Kodo]
En ĉi tiu ekzemplo ni estas fiksantaj la defaŭltan lingvon esti uzita dum la apliko. Ĉi tie ni malfacile kodis la valoron sed en reala efektivigo ni normale legis ĉi tiujn valorojn de nemoveblaĵa dosiero. La aplika kunteksto estas initialized kun la ” DEFAŬLTA_LINGVA_ECO” Kiel “English”. Ĉi tiu kunteksta eco estas uzita dum la viva ciklo de la apliko, Kasregistrilo la tempo, La kunteksto estas detruita. La sekvantaj kodaj rezultoj kiel la kunteksta valoro “DEFAŬLTA_LINGVA_ECO” Estas uzita en aliaj partoj de la apliko.

Enlistiganta 4: Uzanta la kuntekstan econ

[Kodo]

Pako Com.Hejme.Servletlisteners;

Importaĵo Java.Io.IOException;

Importaĵo Javax.Servlet.ServletException;

Importaĵo Javax.Servlet.Http.HttpServlet;

Importaĵo Javax.Servlet.Http.HttpServletRequest;

Importaĵo Javax.Servlet.Http.HttpServletResponse;

Publika Klaso TestServlet Etendas HttpServlet {

Protektita Malplena ProcessRequest(HttpServletRequest peto,

HttpServletResponse respondo) Ĵetas ServletException, IOException {

Laĉi attr = (Ŝnuro) GetServletContext().GetAttribute(

“DEFAŬLTA_LINGVA_ECO”);

Sistemo.Ekstere.Println(“KUNTEKSTO ATRIBUAS DEFAŬLTAN LINGVON : ” + Attr);

}

@Superregi

Protektita Malplena DoGet(HttpServletRequest peto,

HttpServletResponse respondo) Ĵetas ServletException, IOException {

ProcessRequest(Peto, Respondo);

}

@Superregi

Protektita Malplena DoPost(HttpServletRequest peto,

HttpServletResponse respondo) Ĵetas ServletException, IOException {

ProcessRequest(Peto, Respondo);

}

@Superregi

Publika Laĉi getServletInfo() {

Reveno “Priskribo pri la servlet”;

}

}

[/Kodo]

Ankaŭ ni devus difini la kuntekstan aŭskultanton en la araneaĵo.Xml kiel nesufiĉe:

[Kodo]

<?Xml versio=”1.0″ Kodanta=”UTF-8″?> <Araneaĵo-app versio=”2.5″ Xmlns=”Http://Java.Suno.Com/xml/ns/javaee” Xmlns:Xsi=”Http://Www.w3.org/2001/xmlschema-okazo” Xsi:SchemaLocation=”Http://Java.Suno.Com/xml/ns/javaee http://Java.Suno.Com/xml/ns/javaee/araneaĵo-app_2_5.Xsd”><Aŭskultanto> <Aŭskultanto-klaso>Com.Hejme.Servletlisteners.SampleServletContextListener</Aŭskultanto-klaso> </Aŭskultanto></Araneaĵo-app>

[/Kodo]

Avantaĝoj de Servlet Kunteksto
Servlet kunteksto havas la sekvantajn avantaĝojn:

  • Facile difini : Kiel ni vidis super difinanta servlet kunteksto estas sufiĉe rekta avanulo kaj estas nur ŝatas difinanta ajnan econ en java programo.
  • Facile daŭrigi: Servlet Kuntekstaj objektoj estas facile daŭrigi kiel ili devas esti difinita ĉe ununura loko kaj ŝanĝo ĉe nura loko se postulita.
  • Facile detrui: Servlet kunteksto ne estas nur facile difini kaj daŭrigi, Ĝi estas ankaŭ facile detrui servlet.

Uzado de Servlet Kunteksto
Servlet kunteksto havas multan uzadon. Kelkaj de ili estas enlistigita sub:

  • La servlet kunteksta objekto provizas fasadon inter la ujo kaj la servlet.
  • La servlet kunteksta objekto estas uzita akiri la konfiguracian informon de la deplojo descriptor dosiero kiu estas araneaĵo.Xml en kazo de java bazitaj araneaĵaj aplikoj.
  • La servlet kunteksta objekto estas ankaŭ uzita akiri fiksita aŭ forigi econ de la araneaĵo.Xml dosiero.
  • La servlet kunteksta objekto estas ankaŭ uzita faciligi la entombigi-aplika komunikado t.e. ĝi helpas en komunikanta kun aliaj aplikoj kiu estas bazita sur simila teknologio.

La sekvanta bildo montras la arkitekturon de la servlet kunteksto kaj kiel ĝi interrilatas kun la aliaj eroj de la araneaĵa apliko:

webserver-architecture

Retservilo-arkitekturo

Cifero 1: Retservila arkitekturo

Resuma:
Lasi nin resumi al kio ni diskutis tiel ege pri la servlet kunteksta aŭskultanto kaj ĝia uzado en la sekvantaj kugloj:

  • Servlet kunteksta aŭskultanto estas fasado kiu ricevas la sciigajn eventojn pri la viva ciklo de la servlets.
  • Servlet kunteksto estas kreita kiam nin deplojiĝas la araneaĵan aplikon.
  • Unufoje kreita, La servlet kunteksta objekto estas havebla dum la viva ciklo de la apliko.
  • Klasifiki efektiviganta la servlet kunteksta aŭskultanto fasado devas provizi efektivigon por contextInitialized() Kaj contextDestroyed() Metodoj.
  • Kelkaj ekzemploj de Servlet kunteksta aŭskultanto efektivigo estas kiel nesufiĉe :
    • Instalanta la defaŭltan lingvon por la apliko.
    • Instalanta la datumarajn parametrojn por apliko.
    • Leganta aliajn parametrojn de rimedaj dosieroj kiu estas postulita de la apliko.

?

?

Etikedita sur: ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share