Web tananyag kivonat
Servlet létrehozás
A servlet egy Java osztály ami megfelelő őssel rendelkezik (HttpServlet)
| public class PeldaServlet extends HttpServlet {}
|
Végpont meghatározása
A végpont az az útvonal amit beírva eljutunk a szervletünkhöz.
Egy szerveren több végpont szokott lenni, így az adott szervlethez meg kell adni, melyik végponthoz köthető.
Ezt a WebServlet annotációval tehetjük meg.
| @WebServlet("/vegpont/utvonal/megadasa")
public class PeldaServlet extends HttpServlet {}
|
Több útvonal egy servletre
Ebben az esetben több útvonal is köthető egy szervletre.
Ez nem probléma, hiszen mindig fix, melyik osztály kell kezelje a kérést.
Több osztály azonos útvonallal nem annotálható, hiszen nem tudná a rendszer melyik kezelje a kérést.
| @WebServlet(urlPatterns = {"/path1", "/path2/pőerlda"})
public class PeldaServlet extends HttpServlet {}
|
Ha az útvonal elejét akarjuk fixre és a vége bármi lehet, akkor használhatunk '*'-t.
| @WebServlet("/path/fix/*")
public class PeldaServlet extends HttpServlet {}
|
Ekkor a * helyett bármi állhat, ezt le tudjuk majd kérni.
Kérések feldolgozása
A kéréseknek van típusa, pl. GET, POST, DELETE, PUT stb.
Ezeket úgy tudjuk kezelni, hogy a megfelelő metódusát definiáljuk felül az ősosztálynak: doMETHODNAME.
| @WebServlet("/vegpont/get/keres")
public class PeldaServlet extends HttpServlet {
doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {}
}
|
| @WebServlet("/vegpont/post/keres")
public class PeldaServlet extends HttpServlet {
doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {}
}
|
| @WebServlet("/vegpont/multi/keres")
public class PeldaServlet extends HttpServlet {
doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {}
doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {}
}
|
Válasz objektum írása
A válasz objektum tartalmaz mindent amit a kliensnek szeretnénk küldeni, legyen az header vagy a válasz törzse maga.
| @WebServlet("/vegpont/get/keres")
public class PeldaServlet extends HttpServlet {
doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
var writer = resp.getWriter();
// writer objektum a válasz törzsét írja, pl. egy JSON itt megadható
resp.setStatus(200);
// státuszkód beállítása
}
}
|
Kérés objektum olvasása
Minden a klienstől kapott információ a request objektumban érhető el, így pl. a kérés paraméterei, törzse esetleg az útvonal is.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | @WebServlet("/vegpont/get/keres/*")
public class PeldaServlet extends HttpServlet {
doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
var reader = req.getReader();
// ezzel a kérés törzsét olvashatjuk ki
String paramName = req.getParameter("paramName");
// kérés paraméterei kiolvashatók név alapján. Ha az adott névhez nincs rendelve, akkor null.
String vegpontPath = req.getPathInfo();
String utolsoUtvonalResz = vegpontPath.substring(1);
// *-hoz köthető, amíg nem tartalmaz /-t a csillagos rész.
}
}
|
Cookie kezelés
Cookie-kat a kérésből olvashatunk és a válaszba írhatunk.
Egy cookie-t a neve azonosít egy adott útvonalhoz van rendelve, ez lehet a root (/) is.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | @WebServlet("/vegpont/cookie")
public class PeldaServlet extends HttpServlet {
doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Cookie[] keresCookies = req.getCookies();
// vagy van cookie vagy nincs -> ez null is lehet
if ( keresCookies != null ) {
for ( var cookie : keresCookies ) {
// cookie feldolgozás pl. név alapján
}
}
var cookie = new Cookie("nev", "ertek");
cookie.setPath("/");
// cookie specifikus tulajdonságok
resp.addCookie(cookie); // hozzáadjuk a válaszhoz. Csak ez lesz benne.
}
}
|
Utolsó frissítés:
2024-04-30 08:08:29