Die meisten von uns wissen bereits, dass normale Anwendungen einfach mit Java-Kernkonzepten erstellt werden können. Aber wenn es um die Entwicklung von Webanwendungen geht, fortgeschrittene Java-Grundlagen, wie JSP, Servlets, JDBC usw., können die Fähigkeiten und Funktionen der Anwendung erweitern und sind daher für Entwickler unerlässlich. Durch das Medium dieses Blogs über Advanced Java Tutorial, Ich werde Ihnen einen vollständigen Einblick in die grundlegenden Konzepte von Advance Java geben.
-
- Einführung in Advanced Java
- JDBC
- Was ist JDBC?
- JDBC-Architektur
- Schritte zum Erstellen einer JDBC-Anwendung
- JDBC-Treibertypen & Verbindungen
- Java Servlets
- Einführung in Java Servlets
- Servlet-Lebenszyklus
- Schritte zum Erstellen von Servlets
- Sitzungsverfolgung in Servlets
- JSP
- Einführung in JSP
- Lebenszyklus von JSP
- JSP Scripting Elements
Sie können auch durch diese Aufnahme von Advanced Java Tutorial gehen, wo Sie die Themen in einem verstehen können detaillierte Weise mit Beispielen.
Fortgeschrittenes Java-Tutorial / J2EE, Java Servlets, JSP, JDBC / Java-Zertifizierungstraining / Edureka
Fortgeschrittenes Java-Tutorial: Einführung in Advanced Java
Advanced Java ist alles, was über Core Java hinausgeht – vor allem die in Java Enterprise Edition definierten APIs, einschließlich Servlet-Programmierung, Webservices, Persistenz-API usw. Es ist eine Web & Enterprise Application Development Platform, die im Wesentlichen der Client & Serverarchitektur folgt.
Advanced Java Tutorial: Notwendigkeit für Advance Java
Im Folgenden habe ich einige wichtige Vorteile von Advance Java aufgelistet:
- Voraus Java dh. JEE (Java Enterprise Edition) bietet Ihnen die Bibliothek, um die Client-Server-Architektur für die Entwicklung von Webanwendungen zu verstehen, die Core Java nicht unterstützt.
- J2EE ist eine plattformunabhängige, Java-zentrierte Umgebung zum Entwickeln und Erstellen & Bereitstellen von webbasierten Anwendungen online. Es besteht auch aus einer Reihe von Diensten, APIs und Protokollen, die die Funktionalität bereitstellen, die für die Entwicklung mehrstufiger, webbasierter Anwendungen erforderlich ist.
- Sie können mit Web- und Anwendungsservern wie Apache Tomcat, Glassfish usw. arbeiten und die Kommunikation über das HTTP-Protokoll verstehen. In Core Java ist dies jedoch nicht möglich.
- Es gibt viele fortgeschrittene Java-Frameworks wie Spring, JSF, Struts usw. damit können Sie sichere transaktionsbasierte Web-Apps für Domänen wie E-Commerce, Bankwesen, Recht, Finanzen, Gesundheitswesen, Inventar usw. entwickeln.
- Um die heißen Technologien wie Hadoop und Cloud-Services zu arbeiten und zu verstehen, sollten Sie mit Core- und Advanced Java-Konzepten vorbereitet sein.
Ich hoffe, Sie haben verstanden, warum Advanced Java unerlässlich ist. Zum besseren Verständnis habe ich diesen Artikel in drei Abschnitte unterteilt. Jeder dieser Abschnitte befasst sich mit einem der wichtigsten Konzepte von Advanced Java:
- JDBC (Java-Datenbankkonnektivität)
- Java-Servlets
- JSP (Java-Servlet-Seiten)
Lassen Sie uns nun mit unserer Diskussion beginnen und das Konzept der Java-Datenbankkonnektivität verstehen, ein hilfreiches Tool für die Interaktion mit der Datenbank.
Fortgeschrittenes Java-Tutorial: Einführung in JDBC
JDBC ist eine Standard-Java-API für eine datenbankunabhängige Konnektivität zwischen der Programmiersprache Java und einer Vielzahl von Datenbanken. Mit dieser Anwendungsprogrammschnittstelle können Sie die Zugriffsanforderungsanweisungen in Structured Query Language (SQL) codieren. Sie werden dann an das Programm übergeben, das die Datenbank verwaltet. Es geht hauptsächlich darum, eine Verbindung zu öffnen, eine SQL-Datenbank zu erstellen, SQL-Abfragen auszuführen und dann zur Ausgabe zu gelangen.
Wir können die JDBC-API verwenden, um auf Tabellendaten zuzugreifen, die in einer relationalen Datenbank gespeichert sind. Mit Hilfe der JDBC-API können wir Daten aus den Datenbanken speichern, aktualisieren, löschen und abrufen. Es ähnelt der von Microsoft bereitgestellten Open Database Connectivity (ODBC).
Lassen Sie uns zum besseren Verständnis der Funktionsweise von JDBC tiefer in das Thema eintauchen und die Architektur verstehen, die hinter der Java-Datenbankkonnektivität steckt.
Erweitertes Java-Tutorial: JDBC-Architektur
Die JDBC-API unterstützt sowohl zweistufige als auch dreistufige Verarbeitungsmodelle für den Datenbankzugriff, aber im Allgemeinen besteht die JDBC-Architektur aus zwei Schichten −
- JDBC-API: Dadurch wird die Verbindung zwischen Anwendung und JDBC-Manager bereitgestellt.
- JDBC-Treiber-API: Dies unterstützt die JDBC-Manager-zu-Treiber-Verbindung.
Die JDBC-API verwendet einen Treibermanager und datenbankspezifische Treiber, um eine transparente Konnektivität zu heterogenen Datenbanken bereitzustellen. Der JDBC-Treibermanager stellt sicher, dass für den Zugriff auf jede Datenquelle der richtige Treiber verwendet wird. Der Treibermanager kann mehrere gleichzeitige Treiber unterstützen, die mit mehreren heterogenen Datenbanken verbunden sind.
Erweitertes Java-Tutorial: Allgemeine JDBC-Komponenten
Die JDBC-API bietet die folgenden Schnittstellen und Klassen −
- DriverManager wird verwendet, um eine Liste von Datenbanktreibern zu verwalten. Der erste Treiber, der ein bestimmtes Unterprotokoll unter JDBC erkennt, wird zum Herstellen einer Datenbankverbindung verwendet.
- Driver ist eine Schnittstelle, die die Kommunikation mit dem Datenbankserver übernimmt. Es abstrahiert auch die Details, die mit der Arbeit mit Treiberobjekten verbunden sind.
- Connection ist eine Schnittstelle, die alle Methoden enthält, die zum Herstellen einer Verbindung zu einer Datenbank erforderlich sind. Das Verbindungsobjekt stellt den Kommunikationskontext dar, dh die gesamte Kommunikation mit der Datenbank erfolgt nur über das Verbindungsobjekt.
Gehen wir nun zum nächsten Thema über und sehen uns die Schritte an, die zum Erstellen einer JDBC-Anwendung erforderlich sind.
Fortgeschrittenes Java-Tutorial: Schritte zum Erstellen einer JDBC-Anwendung
Um eine JDBC-Anwendung zu erstellen, müssen wir einige Schritte ausführen. Mal sehen, was sie sind.
- Importieren der Pakete: Sie müssen die Pakete einschließen, die die für die Datenbankprogrammierung erforderlichen JDBC-Klassen enthalten. Meistens mit Import Java.SQL.* wird ausreichen.
- Registrieren Sie den JDBC-Treiber: Hier müssen Sie einen Treiber initialisieren, damit Sie einen Kommunikationskanal mit der Datenbank öffnen können.
- Verbindung öffnen: Hier können Sie mit der Methode getConnection() ein Verbindungsobjekt erstellen, das eine physische Verbindung mit der Datenbank darstellt.
- Abfrage ausführen: Erfordert die Verwendung einer Object of Type-Anweisung zum Erstellen und Senden einer SQL-Anweisung an die Datenbank.
- Daten aus Ergebnismenge extrahieren: Erfordert, dass Sie die entsprechende Methode getXXX() verwenden, um die Daten aus der Ergebnismenge abzurufen.
- Bereinigen der Umgebung: Erfordert das explizite Schließen aller Datenbankressourcen im Vergleich zur Garbage Collection der JVM.
Nachdem Sie nun verschiedene Schritte zum Erstellen einer JDBC-Anwendung gesehen haben, sehen wir uns einen Beispielcode zum Erstellen einer Datenbank und zum Herstellen einer Verbindung an.
package Edureka;import java.sql.*;import java.sql.DriverManager;public class Example {// JDBC driver name and database URLstatic final String JDBC_DRIVER = "com.mysql.jdbc.Driver";static final String DB_URL = "jdbc:mysql://localhost/emp";// Database credentialsstatic final String USER = "root";static final String PASS = "";public static void main(String args) {Connection conn = null;Statement stmt = null;try{//STEP 2: Register JDBC driverClass.forName("com.mysql.cj.jdbc.Driver");//STEP 3: Open a connectionSystem.out.println("Connecting to database...");conn = DriverManager.getConnection(DB_URL,"root","");//STEP 4: Execute a querySystem.out.println("Creating statement...");stmt = conn.createStatement();String sql;sql = "SELECT id, first, last, age FROM Employees";ResultSet rs = stmt.executeQuery(sql);//STEP 5: Extract data from result setwhile(rs.next()){//Retrieve by column nameint id = rs.getInt("id");int age = rs.getInt("age");String first = rs.getString("first");String last = rs.getString("last");//Display valuesSystem.out.print("ID: " + id);System.out.print(", Age: " + age);System.out.print(", First: " + first);System.out.println(", Last: " + last);}//STEP 6: Clean-up environmentrs.close();stmt.close();conn.close();}catch(SQLException se){//Handle errors for JDBCse.printStackTrace();}catch(Exception e){//Handle errors for Class.forNamee.printStackTrace();}finally{//finally block used to close resourcestry{if(stmt!=null)stmt.close()}catch(SQLException se2){}// nothing can be donetry{if(conn!=null)conn.close();}catch(SQLException se){se.printStackTrace();}//end finally try}//end trySystem.out.println("Goodbye!");}//end main} // end Example
Der obige Code erstellt eine Tabelle in Ihrer localhost-Datenbank. Um die Werte in die erstellte Datenbank einzufügen, können Sie den folgenden Code verwenden. Ich werde den Code nur für Schritt 4 schreiben. Der Rest des Codes bleibt derselbe wie oben.
//STEP 4: Execute a querySystem.out.println("Creating table in given database...");stmt = conn.createStatement();String sql = "CREATE TABLE EMPLOYEES " +"(id INTEGER not NULL, " +" first VARCHAR(255), " +" last VARCHAR(255), " +" age INTEGER, " +" PRIMARY KEY ( id ))";stmt.executeUpdate(sql);System.out.println("Created table in given database...");System.out.println("Inserting records into the table...");stmt =conn.createStatement();String sql ="INSERT INTO Employees VALUES (100, 'Kriss', 'Kurian', 18)";stmt.executeUpdate(sql);sql = "INSERT INTO Employees VALUES (101, 'Enrique', 'John', 25)";stmt.executeUpdate(sql);sql= "INSERT INTO Employees (102, 'Taylor', 'Swift', 30)";stmt.executeUpdate(sql);sql= "INSERT INTO Employees VALUES(103, 'Linkin', 'Park', 28)";stmt.executeUpdate(sql);System.out.println("Inserted records into the table...");
So können Sie eine Verbindung zur Datenbank herstellen und Werte in die Tabellen einfügen. Lassen Sie uns nun weiter gehen und verschiedene JDBC-Treibertypen verstehen
Fortgeschrittenes Java-Tutorial: JDBC-Treibertypen
JDBC-Treiber implementieren die in der JDBC-API definierten Schnittstellen für die Interaktion mit Ihrem Datenbankserver. Im Wesentlichen ermöglicht ein JDBC-Treiber drei Dinge:
1. Stellen Sie eine Verbindung zu einer Datenquelle her.
2. Senden Sie Abfragen und Update-Anweisungen an die Datenquelle.
3. Verarbeiten Sie die Ergebnisse.
Durch die Verwendung von JDBC-Treibern können Sie beispielsweise eine Datenbankverbindung öffnen, um mit ihr zu interagieren, indem Sie SQL- oder Datenbankbefehle senden.
Es gibt 4 Arten von Treibern, nämlich:
Typ 1: JDBC-ODBC Bridge Diver
In Typ 1 Treiber greift eine JDBC Bridge auf ODBC-Treiber zu, die auf jedem Clientcomputer installiert sind. Darüber hinaus konfiguriert ODBC den Datenquellennamen (DSN), der die Zieldatenbank darstellt.
Als Java zum ersten Mal herauskam, war dies ein nützlicher Treiber, da die meisten Datenbanken nur ODBC-Zugriff unterstützten.
Typ 2: JDBC-Native API
In einem Typ-2-Treiber werden JDBC-API-Aufrufe in native C / C ++ – API-Aufrufe konvertiert, die für die Datenbank eindeutig sind. Diese Treiber werden normalerweise von den Datenbankanbietern bereitgestellt und auf die gleiche Weise wie die JDBC-ODBC-Bridge verwendet. Der herstellerspezifische Treiber muss auf jedem Clientcomputer installiert sein.
Der OCI-Treiber (Oracle Call Interface) ist ein Beispiel für einen Typ-2-Treiber.
Typ 3: JDBC-Net pure Java
In einem Typ-3-Treiber wird ein dreistufiger Ansatz für den Zugriff auf Datenbanken verwendet. Die JDBC-Clients verwenden Standard-Netzwerksockets für die Kommunikation mit einem Middleware-Anwendungsserver. Die Socket-Informationen werden dann vom Middleware-Anwendungsserver in das vom DBMS erforderliche Aufrufformat übersetzt und an den Datenbankserver weitergeleitet.
Diese Art von Treiber ist äußerst flexibel, da kein auf dem Client installierter Code erforderlich ist und ein einzelner Treiber tatsächlich Zugriff auf mehrere Datenbanken bieten kann. Sie können sich den Anwendungsserver als JDBC- „Proxy“ vorstellen, was bedeutet, dass er die Clientanwendung aufruft. Daher benötigen Sie einige Kenntnisse über die Konfiguration des Anwendungsservers, um diesen Treibertyp effektiv verwenden zu können. Ihr Anwendungsserver verwendet möglicherweise einen Treiber vom Typ 1, 2 oder 4, um mit der Datenbank zu kommunizieren.
Typ 4: 100% reines Java
In einem Treiber vom Typ 4 kommuniziert ein reiner Java-basierter Treiber über eine Socket-Verbindung direkt mit der Datenbank des Anbieters. Dies ist der leistungsstärkste verfügbare Treiber für die Datenbank und wird normalerweise vom Hersteller selbst bereitgestellt.
Diese Art von Treiber ist extrem flexibel, Sie müssen keine spezielle Software auf dem Client oder Server installieren. Darüber hinaus können diese Treiber dynamisch heruntergeladen werden.
Der Connector/J-Treiber von MySQL ist ein Treiber vom Typ 4. Aufgrund des proprietären Charakters ihrer Netzwerkprotokolle liefern Datenbankanbieter normalerweise Typ-4-Treiber.
Abonnieren Sie unseren YouTube-Kanal, um neue Updates zu erhalten..!
Hier kommt also die Frage, welcher Treiber verwendet werden soll?
- Wenn Sie auf einen Datenbanktyp wie Oracle, Sybase oder IBM zugreifen, ist der bevorzugte Treibertyp 4.
- Wenn Ihre Java-Anwendung gleichzeitig auf mehrere Datenbanktypen zugreift, ist Typ 3 der bevorzugte Treiber.
- Typ-2-Treiber sind in Situationen nützlich, in denen ein Typ-3- oder Typ-4-Treiber für Ihre Datenbank noch nicht verfügbar ist.
- Der Typ-1-Treiber wird nicht als Treiber auf Bereitstellungsebene betrachtet und normalerweise nur für Entwicklungs- und Testzwecke verwendet.
Lassen Sie uns nun zum letzten Thema von JDBC springen und verschiedene Arten von Verbindungen verstehen.
Fortgeschrittenes Java-Tutorial: JDBC-Verbindungen
- JDBC-Pakete importieren: Fügen Sie Ihrem Java-Programm Importanweisungen hinzu, um die erforderlichen Klassen in Ihren Java-Code zu importieren.
- JDBC-Treiber registrieren: Dieser Schritt bewirkt, dass die JVM die gewünschte Treiberimplementierung in den Speicher lädt, damit sie Ihre JDBC-Anforderungen erfüllen kann. Es gibt 2 Ansätze, um einen Treiber zu registrieren.
- Der gebräuchlichste Ansatz zum Registrieren eines Treibers besteht darin, die forName() -Methode von Java zu verwenden, um die Klassendatei des Treibers dynamisch in den Speicher zu laden, wodurch sie automatisch registriert wird. Diese Methode ist vorzuziehen, da Sie damit die Treiberregistrierung konfigurierbar und portabel machen können. Siehe den folgenden Code.
try {Class.forName("oracle.jdbc.driver.OracleDriver");}catch(ClassNotFoundException ex) {System.out.println("Error: unable to load driver class!");System.exit(1);}
- Der zweite Ansatz, mit dem Sie einen Treiber registrieren können, ist die statische registerDriver() -Methode.
try { Driver myDriver = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver( myDriver ); }catch(ClassNotFoundException ex){ System.out.println("Error: unable to load driver class!");System.exit(1);}
- Der gebräuchlichste Ansatz zum Registrieren eines Treibers besteht darin, die forName() -Methode von Java zu verwenden, um die Klassendatei des Treibers dynamisch in den Speicher zu laden, wodurch sie automatisch registriert wird. Diese Methode ist vorzuziehen, da Sie damit die Treiberregistrierung konfigurierbar und portabel machen können. Siehe den folgenden Code.
Sie sollten die registerDriver() -Methode verwenden, wenn Sie eine nicht JDK-kompatible JVM verwenden, z. B. die von Microsoft bereitgestellte.
- Datenbank-URL-Formulierung: Hiermit wird eine ordnungsgemäß formatierte Adresse erstellt, die auf die Datenbank verweist, mit der Sie eine Verbindung herstellen möchten. Nachdem Sie den Treiber geladen haben, können Sie mit dem DriverManager eine Verbindung herstellen.getConnection() Methode. DriverManager.getConnection() Methoden sind-
- getConnection(String url)
- getConnection(String url, Properties prop)
- getConnection(String url, String user, String password)
Hier benötigt jedes Formular eine Datenbank-URL. Eine Datenbank-URL ist eine Adresse, die auf Ihre Datenbank verweist.
A table lists down the popular JDBC driver names and database URL.
RDBMS | JDBC Driver Name | URL |
1. MYSQL | com.mysql.jdbc.Driver | jdbc:mysql://hostname/ databaseName |
2. Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname:port Number:databaseName |
3. Sybase | com.Sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname: portnummer/Datenbankname |
- Erstellen Sie ein Verbindungsobjekt
Sie können einfach eine Verbindung mit der Datenbank-URL, dem Benutzernamen und dem Kennwort sowie mit dem Eigenschaftenobjekt erstellen oder öffnen. Ein Properties-Objekt enthält eine Reihe von Schlüsselwort-Wert-Paaren. Es wird verwendet, um die Treibereigenschaften während eines Aufrufs der getConnection () -Methode an den Treiber zu übergeben.
- Schließen
Am Ende Ihres JDBC-Programms müssen wir alle Datenbankverbindungen schließen, um jede Datenbanksitzung zu beenden. Wenn Sie dies jedoch vergessen, schließt der Garbage Collector von Java die Verbindung, wenn veraltete Objekte bereinigt werden.
conn.close();// Used to close the connection
Das war alles über Java-Datenbank-Konnektivität. Wenn Sie mehr über JDBC wissen möchten, können Sie diese Interviewfragen beziehen. Fahren Sie nun fort und lernen Sie Servlets.
Fortgeschrittenes Java-Tutorial: Einführung in Servlets
Ein Servlet ist eine Java-Programmiersprachenklasse, mit der die Funktionen von Servern erweitert werden, auf denen Anwendungen gehostet werden, auf die über ein Request-Response-Programmiermodell zugegriffen wird. Obwohl Servlets auf jede Art von Anfrage reagieren können, werden sie häufig verwendet, um die von Webservern gehosteten Anwendungen zu erweitern.
Servlet kann wie folgt beschrieben werden:
-
- Servlet ist eine Technologie, die verwendet wird, um eine Webanwendung zu erstellen.
- Es ist eine API, die viele Schnittstellen und Klassen einschließlich Dokumentation bietet.
- Servlet ist eine Schnittstelle, die zum Erstellen eines Servlets implementiert werden muss.
- Es ist auch eine Klasse, die die Fähigkeiten der Server erweitert und auf die eingehenden Anforderungen reagiert. Es kann auf alle Anfragen reagieren.
- Servlet ist eine Technologie, die verwendet wird, um eine Webanwendung zu erstellen.
Erweitertes Java-Tutorial: Servlet-Lebenszyklus
Der gesamte Lebenszyklus eines Servlets wird vom Servlet-Container verwaltet, der Javax verwendet.servlet.Servlet-Schnittstelle, um das Servlet-Objekt zu verstehen und zu verwalten.
Phasen des Servlet-Lebenszyklus: Der Servlet-Lebenszyklus durchläuft hauptsächlich vier Phasen,
- Laden eines Servlets.
- Initialisieren des Servlets.
- Anforderungsbehandlung
- Zerstören des Servlets.
Schauen wir uns jede dieser Phasen im Detail an:
- Laden eines Servlets: Die erste Stufe des Servlet-Lebenszyklus umfasst das Laden und Initialisieren des Servlets durch den Servlet-Container. Der Webcontainer oder Servlet-Container kann das Servlet in einer der beiden folgenden Phasen laden:
- Initialisieren des Kontexts beim Konfigurieren des Servlets mit einem Null- oder positiven ganzzahligen Wert.
- Wenn das Servlet der Phase nicht vorausgeht, kann es den Ladevorgang verzögern, bis der Webcontainer feststellt, dass dieses Servlet zur Bearbeitung einer Anforderung benötigt wird.
- Initialisieren eines Servlets: Nachdem das Servlet erfolgreich instanziiert wurde, initialisiert der Servlet-Container das instanziierte Servlet-Objekt. Der Container initialisiert das Servlet-Objekt durch Aufrufen der init-Methode (ServletConfig), die die ServletConfig-Objektreferenz als Parameter akzeptiert.
- Anfrage bearbeiten: Nach der Initialisierung ist die Servlet-Instanz bereit, die Clientanforderungen zu bedienen. Der Servlet-Container führt die folgenden Vorgänge aus, wenn sich die Servlet-Instanz zum Bedienen einer Anforderung befindet:
- Er erstellt ServletRequest und ServletResponse. Wenn es sich in diesem Fall um eine HTTP-Anforderung handelt, erstellt der Webcontainer HttpServletRequest- und HttpServletResponse-Objekte, die Untertypen der ServletRequest- bzw. ServletResponse-Objekte sind.
- Ein Servlet zerstören: Wenn ein Servlet-Container beschließt, das Servlet zu zerstören, führt er die folgenden Vorgänge aus:
- Alle Threads, die derzeit in der Servicemethode der Servlet-Instanz ausgeführt werden, können ihre Jobs abschließen und freigegeben werden.
- Nachdem aktuell ausgeführte Threads ihre Jobs abgeschlossen haben, ruft der Servlet-Container die destroy() -Methode für die Servlet-Instanz auf.
Nachdem die destroy() -Methode ausgeführt wurde, gibt der Servlet-Container alle Referenzen dieser Servlet-Instanz frei, sodass sie für die Speicherbereinigung in Frage kommt.
Nachdem Sie nun die Grundlagen eines Servlets verstanden haben, gehen wir weiter und verstehen, welche Schritte zum Erstellen einer Servlet-Anwendung erforderlich sind.
Fortgeschrittenes Java-Tutorial: Schritte zum Erstellen eines Servlets
- Erstellen einer Verzeichnisstruktur
- Erstellen eines Servlets
- Kompilieren Sie das Servlet
- Fügen Sie dem Web Zuordnungen hinzu.xml-Datei
- Starten Sie den Server und stellen Sie das Projekt bereit
- Greifen Sie auf das Servlet zu
Basierend auf den obigen Schritten schreiben wir nun ein Programm und verstehen, wie Servlet funktioniert.
Schritt 1: Um ein Servlet-Programm auszuführen, sollte der Apache Tomcat-Server installiert und konfiguriert sein. Sobald der Server konfiguriert ist, können Sie mit Ihrem Programm starten.
Schritt 2: Für ein Servlet-Programm benötigen Sie 3 Dateien – Index.HTML-Datei, Java-Klassendatei und Web.xml-Datei. Der allererste Schritt besteht darin, ein dynamisches Webprojekt zu erstellen und dann fortzufahren
Schritt 3: Lassen Sie uns nun sehen, wie Sie 2 Zahlen mithilfe von Servlets hinzufügen und die Ausgabe im Browser anzeigen.
Zuerst werde ich Index schreiben.HTML-Datei
<!DOCTYPE html><html><body><form action ="add"> Enter 1st number: <input type="text" name="num1"> Enter 2nd number: <input type="text" name="num2"><input type ="submit"> </form></body></html>
Das obige Programm erstellt ein Formular zur Eingabe der Zahlen für die Additionsoperation.
Schritt 4: Ohne die Java-Klassendatei können Sie jetzt keine Addition für 2 Zahlen durchführen. Schreiben wir also eine Klassendatei.
import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Add extends HttpServlet{ public void service(HttpServletRequest req, HttpServletResponse res) throws IOException { int i = Integer.parseInt(req.getParameter("num1")); int j = Integer.parseInt(req.getParameter("num2"); int k= i+j; PrintWriter out = res.getWriter(); out.println("Result is"+k); }}
Schritt 5: Nach dem Schreiben der Java-Klassendatei besteht der letzte Schritt darin, dem Web Zuordnungen hinzuzufügen.xml-Datei. Mal sehen, wie das geht.
Schritt 6: web.die XML-Datei befindet sich im Ordner WEB-INF Ihres Webinhalts. Wenn es nicht vorhanden ist, können Sie auf Deployment Descriptor und dann auf Generate Deployment Descriptor Stub klicken.
Schritt 7: Danach können Sie fortfahren und die Zuordnungen hinzufügen.
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=<"http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"</em> version=<em>"3.0"</em>> <display-name>Basic</display-name> <servlet> <servlet-name>Addition</servlet-name> <servlet-class>edureka.Add</servlet-class> </servlet> <servlet-mapping> <servlet-name>Addition</servlet-name> <url-pattern>/add</url-pattern></servlet-mapping><welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list></web-app>
Schritt 8: Nach all dem können Sie das Programm ausführen, indem Sie den Server starten. Sie erhalten die gewünschte Ausgabe im Browser.
Grundsätzlich sollte das Servlet so konfiguriert werden. Lassen Sie uns nun weiter gehen und das Konzept der Sitzungsverfolgung verstehen.
Sitzungsverfolgung
Sitzung bedeutet einfach ein bestimmtes Zeitintervall. Und Sitzungsverfolgung ist eine Möglichkeit, den Status (Daten) eines Benutzers zu verwalten. Es wird auch als Sitzungsverwaltung im Servlet bezeichnet. Wir wissen, dass das HTTP-Protokoll zustandslos ist, daher müssen wir den Status mithilfe von Sitzungsverfolgungstechniken beibehalten. Bei jeder Benutzeranforderung an den Server behandelt der Server die Anforderung als neue Anforderung. Wir müssen also den Status eines Benutzers beibehalten, um einen bestimmten Benutzer zu erkennen.
Sie können in der Abbildung sehen, wenn Sie eine Anfrage senden, wird diese als neue Anfrage betrachtet.
Um den jeweiligen Benutzer zu erkennen, benötigen wir Sitzungsverfolgung. Das war also alles über Servlets.
Lassen Sie uns nun in den letzten Abschnitt unseres Blogs eintauchen und verstehen, was JSP ist.
Fortgeschrittenes Java-Tutorial: Java Server Pages
JSP oder Java Server Pages ist eine Technologie, die verwendet wird, um Web-Anwendung wie Servlet-Technologie zu erstellen. Es ist eine Erweiterung des Servlets – da es mehr Funktionen als Servlets wie Ausdruckssprache, JSTL usw. bietet. Eine JSP-Seite besteht aus HTML-Tags und JSP-Tags. Die JSP-Seiten sind einfacher zu pflegen als Servlets, da wir Design und Entwicklung voneinander trennen können. Es bietet einige zusätzliche Funktionen wie Ausdruckssprache, benutzerdefinierte Tags usw.
Nun sehen wir uns verschiedene Funktionen von JSP mit Hilfe der folgenden Abbildung an.
- Portabel: JSP-Tags werden vom serverseitigen Webcontainer verarbeitet und ausgeführt, sodass diese browserunabhängig und J2EE-serverunabhängig sind.
- Leistungsstark: JSP besteht aus Bytecode, so dass alle Java-Funktionen im Falle von JSP wie robust, dynamisch, sicher, plattformunabhängig anwendbar sind.
- Flexibel: Es erlaubt, benutzerdefinierte Tags zu definieren, so dass der Entwickler jede Art von Framework-basierten Markup-Tags in JSP verwenden kann.
- Schnelle Entwicklung: Wenn die JSP-Seite geändert wird, müssen wir das Projekt nicht neu kompilieren und erneut bereitstellen. Der Servlet-Code muss aktualisiert und neu kompiliert werden, wenn wir das Erscheinungsbild der Anwendung ändern müssen.
- Verfolgung des Benutzers: JSP ermöglicht es uns, die vom Benutzer während der Benutzerinteraktion mit der Website getroffenen Entscheidungen zu verfolgen, indem wir die Informationen in der Sitzung oder in Cookies beibehalten
- Einfach: JSP ist leicht zu erlernen, leicht zu verstehen und einfach zu entwickeln. JSPs sind bequemer zu schreiben als Servlets, da Sie Java-Code direkt in Ihre HTML-Seiten einbetten können.
Nachdem Sie nun verstanden haben, was JSP ist, wollen wir anhand der folgenden Tabelle sehen, wie sich JSP und Servlets voneinander unterscheiden und warum JSP besser ist als Servlets.
JSP | Servlets |
Erweiterung zum Servlet | Keine Erweiterung zum Servlet |
Leicht zu pflegen | Etwas kompliziert |
Keine Neukompilierung oder erneute Bereitstellung erforderlich | Der Code muss neu kompiliert werden |
Weniger Code als ein Servlet | Mehr Code im Vergleich zu JSP |
Lassen Sie uns nun tiefer in Java Server Pages eintauchen und den Lebenszyklus von JSP verstehen.
Fortgeschrittenes Java-Tutorial: Lebenszyklus von JSP
Die JSP-Seiten folgen diesen Phasen:
- Übersetzung der JSP-Seite
- Kompilierung der JSP-Seite
- Klassenladen (der Klassenlader lädt die Klassendatei)
- Instanziierung (Objekt des generierten Servlets wird erstellt)
- Initialisierung (der Container ruft jspInit() auf)
- Anforderungsverarbeitung ( der Container ruft _jspService() auf)
- Zerstören ( der Container ruft jspDestroy auf())
Wie im obigen Diagramm dargestellt, wird eine JSP-Seite mit Hilfe von JSP Translator in Servlet übersetzt. Und dann ist JSP Translator ein Teil des Webservers, der für die Übersetzung der JSP-Seite in Servlet verantwortlich ist. Danach wird die Servlet-Seite vom Compiler kompiliert und in die Klassendatei konvertiert. Darüber hinaus werden alle Prozesse, die im Servlet ablaufen, später in JSP ausgeführt, z. B. Initialisierung, Festschreiben der Antwort an den Browser und Zerstören.
Erweitertes Java-Tutorial: JSP-Skriptelemente:
Die Skriptelemente bieten die Möglichkeit, Java-Code in die JSP einzufügen. Es gibt drei Arten von Skriptelementen:
- Scriptlet-Tag – Ein Scriptlet-Tag wird verwendet, um Java-Quellcode in JSP auszuführen.
Syntax ist: <% Java-Quellcode %> - expression Tag – Der Code innerhalb JSP expression Tag platziert wird in den Ausgabestream der Antwort geschrieben. Sie müssen also nicht schreiben.print(), um Daten zu schreiben. Es wird hauptsächlich verwendet, um die Werte von Variablen oder Methoden zu drucken.
Syntax : <%= Anweisung %> - deklarations-Tag – Das JSP-Deklarations-Tag wird zum Deklarieren von Feldern und Methoden verwendet. Der im JSP-Deklarations-Tag geschriebene Code wird außerhalb der service() -Methode eines automatisch generierten Servlets platziert. Es erhält also nicht bei jeder Anfrage Speicher.
Syntax: <%! feld- oder Methodendeklaration %>
Wenn Sie mehr über JSP erfahren möchten, können Sie diese Interviewfragen beziehen.
Dies bringt uns zum Ende unseres Blogs über Advanced Java Tutorial. Ich hoffe, Sie fanden diesen Blog informativ und Mehrwert für Ihr Wissen.
Schauen Sie sich das Java Certification Training von Edureka an, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in der Java-Programmierung verschaffen und Sie sowohl für Kern- als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.