Servlet kérdések és válaszok
Mi a servlet?
Servlet - egy Java felület, a megvalósítása, amely lehetővé teszi, hogy növelje szerver funkciókat. Ahhoz, hogy kölcsönhatásba lépnek a servlet elvet használja a válasz kérelmet. Java Servlet technológia határozza meg a HTTP szervlet-orientált osztályok. Ahhoz, hogy hozzon létre egy servlet kell használni javax.servlet és javax.servlet.http csomagokat. beleértve a szükséges interfészek és osztályok.
Javax.servlet.Servlet interfész három elsődleges módszerek és két kiegészítő módszer.
servlet konténer
Servlet konténer - egy olyan szerver, amely rendszer támogatás servlet (Servlet életciklusa) összhangban elfogadott szabályok és előírások. Servlet konténer működni, mint egy önálló web szerver, és kölcsönhatásban vannak a másik, például Apache web szerver.
A leggyakoribb végrehajtása a servlettároló. Apache Tomcat, GlassFish, Móló, JBoss, IBM WebSphere, Oracle WebLogic.
GenericServlet és HttpServlet
Java Servlet API, amellett, hogy a saját felületen is több osztályt tartalmaz servlet, amely alapjául szolgálhat. Az alapja az összes ilyen osztályok egy absztrakt osztály javax.servlet.GenericServlet.
Mint látható a meghatározás GenericServlet osztály magában foglalja az összes módszereket és Servlet ServletConfig interfészek. Nem megvalósított eljárás csak egy absztrakt módszer szolgáltatást. Szolgáltatás módszer az úgynevezett valahányszor a servlet.
Példa servlet Először, örökli tulajdonságok GenericServlet
Javax.servlet.http.HttpServlet osztály örökli GenericServlet.
HttpServlet még több kényelmet biztosít a programozó, és számos hasznos módszerek:
Interfészek ServletRequest és HttpServletRequest
Kérelme a böngésző megjeleníti a szerver HttpServletRequest objektumot. Ez a felület örökli ServletRequest felületen. ServletRequest interfész módszerek további információkat, beleértve részleteket a servlet, és a HTTP kérés protokoll:
Amikor felhívja a servlet (a szerver címét), mint általában, átadott paramétereket és azok értékeit. Elemezni a paramétereket és azok értékeit használt extrakciós módszerekkel oldalon leírt osztály HttpServlet.
Interfészek ServletResponse és HttpServletResponse
ServletResponse felületet úgy tervezték, hogy létrehozza és elküldi az adatokat a kliens. Minden módszer ServletResponse eszközök ezt a célt szolgálják. A következő módszerek lehetővé teszik, hogy kap linkeket kilépő:
Ha getOutputStream () metódus már kérte ezt a választ generál IllegalStateException.
HttpServletResponse felület örökli ServletResponse interfész és tartalmaz számos hasznos módszereket, amelyek leírása az oldalon osztály HttpServlet. Ugyanezen az oldalon egy példa a használatát HttpServletResponse alkotnak választ az ügyfél.
Futás a servlet
servlet konténer betölti a servlet, amikor az első ügyfél kérésére. Bizonyos esetekben, ha a servlet térhatású, meg kell töltse le közvetlenül a kezdete a kérelem, hogy csökkentsék a feldolgozási időt a kérelmet. Ehhez használja a címkét
Az érték egész számnak kell lennie. Ha az érték negatív, akkor a servlet betöltődik az ügyfél kérésére, más esetekben a servlet betöltődik induláskor.
servlet szűrő
Servlet szűrőt kell végrehajtani javax.servlet.Filter felületet. mely meghatározza a három módszer:
A módszer init () hangolt szűrő konfigurációját. doFilter eljárás végrehajtja az alapvető funkciója a szűrő. servlet konténer kéri az init () gombot, hogy előkészítsék a szűrő működését, és okoz doFilter (), amikor belépett a felhasználó / böngésző kéri, hogy a szűrőt meg elfogják. Miután az alkalmazás befejezte munkáját, az úgynevezett elpusztítani () metódust.
Servlet szűrőt lehet használni:
- tartalmának meghatározása a kérelmet;
- módosítja a kérés fejlécében és az adatok;
- módosítja a fejléc és a válasz adatait.
Servlet szűrő csatlakozik a leíró web.xml alkalmazást. Az alábbi felsorolás határozza meg a servlet szűrőt szia. amelynek oka lehet a közvetlen cím neki. Példa ezzel szűrő megtalálható az oldalon servlet például hello!
Servlet szűrő lehet állítani úgy, hogy együtt fog működni egy servlet, servlet, vagy egy olyan csoport, hogy egy csoport oldalakat. Az alábbi lista diskriptora alkalmazás web.xml FILTERNAME szűrő csatlakozik a servlet és ServletName oldal * .html.
A konfiguráció a servlet, ServletConfig
Javax.servlet.ServletConfig interfész a át a servlet konfigurációs információkat. Minden servlet saját ServletConfig. amely felelős a létrehozását servlet konténer.
Az alábbi felsorolás a init eljárás inicializálja a konzol megjeleníti a paraméterek nevét és mname. alkalmazás (lásd. a fenti példában) meghatározott leíró.
A servlet összefüggésben ServletContext
A paraméterek eléréséhez a servlet a WEB-alkalmazás, akkor kell használni javax.servlet.ServletContext felületen. ServletContext tárgy egyedi, és mindenki számára elérhető servleteket.
ServletContext lehetővé teszi a hozzáférést a paramétereket WEB-alkalmazások meghatározott web.xml leíró tag
ServletContext objektum eljárás alkalmazásával kapott getServletContext (ServletConfig interfész).
ServletContext interfész meghatározza a hozzáférést az alábbi dolgozó attribútumok:
- public Object getAttribute (String name)
- nyilvános java.util.Enumeration getAttributeNames ()
- public void setAttribute (String név, Object objektum)
- public void removeAttribute (String name)
Szerepe attribútumok céljának megvalósítása minden osztályban. A cél ezen funkciók kapcsolódó szállítást független egymástól servleteket különböző tárgyakat.
Különbségek ServletConfig és ServletContext
- ServletConfig objektum egyedi minden servlet és ServletContext definiált az egész alkalmazás;
- ServletConfig használt servlet inicializálási paraméterek, és megszerzésére alkalmazási ServletContext inicializálási paraméterek minden servletekkel;
- ServletConfig objektum nem teszi lehetővé, hogy állítsa be a paramétereket / attribútumok, míg be lehet állítani a ServletContext objektumot. amely mindenki számára elérhetővé váljanak servleteket.
Ez azt jelenti, hogy az egyes ServletConfig minden servlet és ServletContext - WEB-alkalmazások és mindenki számára elérhető servleteket.
interfész RequestDispatcher
RequestDispatcher interfész segítségével dolgozzuk további forrásokat, amelyek magukban foglalják a másik servlet, JSP oldalt vagy dokumentumot HTML. Jellemzően ez a felület használják belső kommunikációra servlet ugyanebben az összefüggésben. Hozzáférés a RequestDispatcher lehet eljárással előállított getRequestDispatcher (string url) ServletContext interfész.
RequestDispatcher végrehajtja két módszer:
- érvényteleníti előre (ServletRequest kérésére ServletResponse válasz) - kérelem adás / vezérlés egy másik forrás a szerveren;
- void közé (ServletRequest kérésére ServletResponse válasz) - felvétele kiegészítő forrás a tartalmak.
Különbségek módszerek előre () és sendRedirect ()
előre (RequestDispatcher interface) módszert alkalmazzák, hogy elküldi a kérést egy másik forrás a servlet. Azaz, a kereset végeztek egy lépésben. sendRedirect módszer () ServletResponse interfész egy két lépésben. Ebben az eljárásban, WEB-kliens alkalmazás választ ad vissza a status code 302 (átirányítás), utalva a kérelem elküldését. A böngésző elküldi egy teljesen új kérelmet a letöltési linket. Azaz, előre () kerül feldolgozásra a tartály belsejében, és sendRedirect () kerül feldolgozásra a böngészőben.
Megszervezése érdekében az átmeneti belül ugyanazt az alkalmazást, akkor az előre (), mert Ez a módszer nél gyorsabban válaszol sendRedirect () segítségével további hálózati erőforrásokat.
Egy példa az előre () és sendRedirect () in servlet itt bemutatott.