Stranice prilagođenih pogrešaka s Spring MVC-om

1. Pregled

Uobičajeni zahtjev bilo koje web aplikacije su prilagođene stranice s pogreškama.

Na primjer, pretpostavimo da na programu Tomcat pokrećete aplikaciju MVC Spring Spring MVC. Korisnik u svoj neovisni URL unese nevaljani URL i prikazuje mu se ne tako prilagodljiv trag plavo-bijelog stoga - nije idealan.

U ovom ćemo uputstvu postaviti prilagođene stranice pogrešaka za nekoliko HTTP kodova pogrešaka.

Pretpostavlja se da je čitaču prilično ugodno raditi s Spring MVC; ako ne, ovo je sjajan način za početak.

Ovaj se članak usredotočuje na proljetni MVC. Naš članak Prilagođavanje stranice s pogreškama oznake opisuje kako stvoriti prilagođenu stranicu pogreške u Spring Boot-u.

2. Jednostavni koraci

Počnimo s jednostavnim koracima koje ćemo ovdje slijediti:

  1. Navedite jedan URL / pogreške u web.xml koja se preslikava na metodu koja bi obrađivala pogrešku kad god se generira pogreška
  2. Stvorite kontroler pod nazivom ErrorController s mapiranjem / pogreške
  3. Shvatite HTTP kôd pogreške tijekom izvođenja i prikažite poruku prema HTTP kodu pogreške. Na primjer, ako se generira pogreška 404, tada bi korisnik trebao vidjeti poruku poput 'Resurs nije pronađen', dok bi za pogrešku 500 korisnik trebao vidjeti nešto u retku 'Oprosti! Na našem kraju generirana je interna pogreška poslužitelja '

3. The web.xml

Započinjemo dodavanjem sljedećih redaka u naš web.xml:

 / pogreške 

Imajte na umu da je ova značajka dostupna samo u verzijama Servleta većim od 3.0.

Svaka pogreška generirana u aplikaciji povezana je s HTTP kodom pogreške. Na primjer, pretpostavimo da korisnik unese URL /Neispravna poveznica u preglednik, ali nema takvih Zahtjev za mapiranje je definirano unutar Proljeća. Zatim, HTTP kôd 404 koji generira osnovni web poslužitelj. Redci koje smo upravo dodali našim web.xml govori Springu da izvrši logiku napisanu u metodi koja se preslikava na URL / pogreške.

Kratka napomena ovdje - odgovarajuća konfiguracija Java Servlet nažalost nema API za postavljanje stranice pogreške - tako da u ovom slučaju zapravo trebamo web.xml.

4. Upravljač

Krećući dalje, mi sada stvaramo svoje ErrorController. Izrađujemo jedinstvenu metodu objedinjavanja koja presreće pogrešku i prikazuje stranicu pogreške:

@Controller javna klasa ErrorController {@RequestMapping (value = "error", method = RequestMethod.GET) public ModelAndView renderErrorPage (HttpServletRequest httpRequest) {ModelAndView errorPage = new ModelAndView ("errorPage"); Pogreška nizaMsg = ""; int httpErrorCode = getErrorCode (httpRequest); prekidač (httpErrorCode) {slučaj 400: {errorMsg = "Http kôd pogreške: 400. Loš zahtjev"; pauza; } slučaj 401: {errorMsg = "Http kôd pogreške: 401. Neovlašteno"; pauza; } slučaj 404: {errorMsg = "Http kôd pogreške: 404. Resurs nije pronađen"; pauza; } slučaj 500: {errorMsg = "Http kôd pogreške: 500. Interna pogreška poslužitelja"; pauza; }} errorPage.addObject ("errorMsg", errorMsg); return errorPage; } private int getErrorCode (HttpServletRequest httpRequest) {return (Integer) httpRequest .getAttribute ("javax.servlet.error.status_code"); }} 

5. Prednji kraj

U svrhu demonstracije našu ćemo stranicu s pogreškama držati vrlo jednostavnom i kompaktnom. Ova će stranica sadržavati samo poruku prikazanu na bijelom zaslonu. Stvoriti jsp datoteka nazvana errorPage.jsp:

    Dom 

6. Ispitivanje

Simulirat ćemo dvije najčešće greške koje se javljaju u bilo kojoj aplikaciji: pogrešku HTTP 404 i pogrešku HTTP 500.

Pokrenite poslužitelj i krenite prema localhost: 8080 / spring-mvc-xml / invalidUrl.Budući da ovaj URL ne postoji, očekujemo da ćemo vidjeti našu stranicu s pogreškom s porukom "Http kôd pogreške: 404. Resurs nije pronađen '.

Pogledajmo što će se dogoditi kad jedna od metoda rukovatelja baci a NullPointerException. Dodamo sljedeću metodu u ErrorController:

@RequestMapping (value = "500Error", method = RequestMethod.GET) public void throwRuntimeException () {bacanje novog NullPointerException ("Bacanje null pointer izuzetaka"); }

Idi do localhost: 8080 / spring-mvc-xml / 500Error. Trebali biste vidjeti bijeli zaslon s porukom "Http kôd pogreške: 500. Interna pogreška poslužitelja".

7. Zaključak

Vidjeli smo kako postaviti stranice s pogreškama za različite HTTP kodove s Spring MVC. Stvorili smo jednu stranicu pogreške na kojoj se poruka o pogrešci prikazuje dinamički prema HTTP kodu pogreške.


$config[zx-auto] not found$config[zx-overlay] not found