Mi az a JSP fájl?
A JSP-fájlok dinamikus, adatvezérelt oldalakként valósulnak meg a Java webalkalmazásokhoz. A JSP jelentése Java Server Pages; megvalósítható a Servlet kiterjesztéseként, mert több funkcionalitást tesz lehetővé, mint a servlet, mint például a kifejezési nyelv. A JSP és a Servlet ugyanazt a munkát végzi el a régebbi Java webalkalmazásokban. Programozási szempontból a legegyértelműbb különbség köztük az, hogy a servletekkel Java programot írunk, majd statikus jelölést (például HTML-t) ágyazunk be ebbe a kódba, míg a JSP a kliensoldali szkripttel vagy jelöléssel kezdődik, majd a JSP címkéket beágyazja a kódba. csatlakoztassa oldalát a Java háttérrendszerhez.
JSP fájlformátum
A jsp fájlkiterjesztéssel mentett fájl a következő szakaszokat tartalmazza a felsorolás sorrendjében:
- Megjegyzések megnyitása
- JSP-oldal direktíva(i)
- Opcionális címkekönyvtár-irányelv(ek)
- Opcionális JSP-deklaráció(k)
- HTML és JSP kód
Nyitó megjegyzések
A JSP-fájl vagy töredékfájl egy szerveroldali stílusú megjegyzéssel kezdődik:
<%-- - Author(s): - Date: - Copyright Notice: - @(#) - Description: --%> A fenti megjegyzés csak a szerver oldalon jelenik meg, mert az oldal böngészőben történő megjelenítése közben eltávolítják. A megjegyzés tartalmazhatja a szerző(k)re vonatkozó információkat, a dátumot és a revízió szerzői jogi megjegyzését, egy azonosítót és egy leírást a fejlesztői JSP-oldalról. A “@(#)” karakterek kombinálását bizonyos programok egy azonosító kezdetének jelzéseként ismerik fel.
JSP-oldal irányelv(ek)
A JSP-oldal direktíva határozza meg a JSPF-oldalhoz kapcsolódó attribútumokat a fordítási időben. A JSP specifikáció nem szab megkötést arra vonatkozóan, hogy hány JSP-oldal direktíva írható egyetlen oldalra. Lásd a következő példát:
<%@ page session="false" %> <%@ page import="java.util.*" %> <%@ page errorPage="/common/errorPage.jsp" %> Ha egy oldalirányelv meghaladja a JSP-oldal normál szélességét, az utasítás több sorra oszlik:
<%@ page session="false" import="java.util.*" errorPage="/common/errorPage.jsp" %> Választható címkekönyvtárra vonatkozó irányelv(ek)
A JSP oldalon egy címkekönyvtár direktíva deklarál egyéni címkekönyvtárakat. Egy rövid direktíva egyetlen sorban deklarálható. A több címkekönyvtár direktívája a JSP-oldal törzsén belül ugyanazon a helyen van egymás mellett:
<%@ taglib uri="URI1" prefix="tagPrefix1" %> <%@ taglib uri="URI2" prefix="tagPrefix2" %> ... Választható JSP-deklaráció(k)
A JSPF-fájlban deklarált metódusoknak és változóknak létezniük kell a JSP-deklarációkban. Ezek a metódusok és változók hasonlóak a Java programozási nyelv deklarációihoz, ezért érdemes követni a vonatkozó kódkonvenciókat. A nyilatkozatokat általában egyetlen < %-ban írják! … %> JSP deklarációs blokk a deklarációk központosítására a JSP oldal törzsének egy területén. nézze meg a következő példákat:
Eltérő deklarációs blokkok:
<%! private int hitCount; %> <%! private Date today; %> ... <%! public int getHitCount() { return hitCount; } %> Preferált deklarációs blokk:
<%! private int hitCount; private Date today; public int getHitCount() { return hitCount; } %> HTML és JSP kód
A JSP-oldal ezen része tartalmazza a JSP-oldal HTML-törzsét és a JSPF-kódot, például JSP-kifejezéseket, szkriptleteket és JavaBeans-utasításokat.
A JSP-oldal életciklusa
A fázis szerinti JSP oldalfolyamat itt látható:
- A JSP oldal fordítása
- JSP oldal összeállítása
- Osztálybetöltés (az osztálybetöltő betölti az osztályfájlt)
- Példányosítás (a generált szervlet objektuma létrejön).
- Inicializálás (a tároló meghívja a jspInit() metódust).
- Kérjen feldolgozást (a tároló a _jspService() metódust hívja meg).
- Destroy (a tároló meghívja a jspDestroy() metódust).

JSP példa
A JSP-technológiák megismerése manapság nagyon egyszerű, mivel sok JSP-oktatóanyag érhető el az interneten. A következő JSP-példa a rendelés feldolgozására szolgál, az adatbázis megfelelő rekordjainak frissítésével.
<html> <head> <title>Order Book</title> </head> <body> <h1>Another E-Bookstore</h1> <h2>Thank you for ordering...</h2> <% String[] ids = request.getParameterValues("id"); if (ids != null) { %> <%@ page import = "java.sql.*" %> <% Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:8888/ebookshop", "myuser", "xxxx"); // <== Check! // Connection conn = // DriverManager.getConnection("jdbc:odbc:eshopODBC"); // Access Statement stmt = conn.createStatement(); String sqlStr; int recordUpdated; ResultSet rset; %> <table border=1 cellpadding=3 cellspacing=0> <tr> <th>Author</th> <th>Title</th> <th>Price</th> <th>Qty In Stock</th> </tr> <% for (int i = 0; i < ids.length; ++i) { // Subtract the QtyAvailable by one sqlStr = "UPDATE books SET qty = qty - 1 WHERE id = " + ids[i]; recordUpdated = stmt.executeUpdate(sqlStr); // carry out a query to confirm sqlStr = "SELECT * FROM books WHERE id =" + ids[i]; rset = stmt.executeQuery(sqlStr); while (rset.next()) { %> <tr> <td><%= rset.getString("author") %></td> <td><%= rset.getString("title") %></td> <td>$<%= rset.getInt("price") %></td> <td><%= rset.getInt("qty") %></td> </tr> <%} rset.close(); } stmt.close(); conn.close(); } %> </table> <a href="query.jsp"><h3>BACK</h3></a> </body> </html>