Jsp ruft den Javeabean-Befehl auf, und im Allgemeinen gibt es Einstellungen wie „Anwendungssitzungsseite“,
die für jede Seite neu generiert wird , Sie können es verwenden.
Im Vergleich zu Sitzung ist die Anwendung relativ zur Anwendung
und
sie verschwindet, wenn der Benutzer sie verlässt ., ähnlich
einem Servlet-Programm, ähnlich den „globalen Variablen“ des gesamten Systems, und es gibt nur eine Instanz.
Kontrollfunktionen in MVC
Daher eignet sich die Anwendungsfunktion sehr gut für die Kontrollfunktionen in MVC. Im
Allgemeinen
verwendet traditionelles MVC Servlets für Kontrollfunktionen , und M ist eine Middleware-Javabean.Mit der Verbesserung und Förderung der Jsp-Funktionen gibt es jedoch einen allmählichen Trend, Servlets zu ersetzen. In der Praxis verwenden wir manchmal Jsp,
um
Ärger zu vermeiden, insbesondere seine Kontrollfunktion.Tatsächlich ist diese Steuerfunktion in einem Javabean gekapselt und verwendet „scope=application“, um dieses Javabean aufzurufen. Auf diese Weise
ist das Javabean mit der Steuerfunktion wie ein im Speicher residentes Servlet und interagiert mit verschiedener Hintergrund-Middleware.
Die Anzeige der „Homepage“
in praktischen Anwendungen führt häufig dazu, dass mehrere Benutzer gleichzeitig auf eine Seite zugreifen, beispielsweise auf die
Homepage muss Baumdaten aus der Datenbank lesen und auf der Homepage ausgeben. Diese Funktion ist in Javabeans gekapselt.
Wenn dann die Homepage-JSP diese Javabean aufruft, verwenden Sie „scope=application“ und dann den Baumdatenpufferungsalgorithmus. Wenn mehrere
Benutzer
gleichzeitig auf die Homepage zugreifen, muss die Homepage-JSP die Javabean nicht jedes Mal starten und dann die Datenbank wiederholt lesen.Es wird zweifellos die Geschwindigkeit erheblich erhöhen.
Wenn Ihre JSP-Homepage also eine hohe Anzahl an Besuchen hat, sollten Sie mehr Zeit in die Optimierung investieren.
Pufferung der Datenbankverbindung
< jsp:useBean id="cods"
class="oracle.jdbc.pool.OracleConnectionCacheImpl"
Scope="application" />
< event:application_OnStart>
<%
cods.setURL("jdbc:oracle:thin:@HOST:PORT:SID");
cods.setUser("scott");
cods.setPassword("tiger");
cods.setStmtCache (5);
%>
< /event:application_OnStart>
< %@ page import="java.sql.*, javax.sql.*, oracle.jdbc.pool.*" %>
< !------------------------------------------------ ----------------
* Dies ist eine JavaServer-Seite, die Connection Caching verwendet
Anwendung
* Bereich. Der Cache wird in einem Anwendungsbereich erstellt
globals.jsa-Datei.
* Die Verbindung wird aus dem Cache abgerufen und einmal zurückgeführt
Erledigt
.------------------------------------------------ --------------------!>
<HTML>
<KOPF>
<TITEL>
ConnCache JSP
< /TITLE>
< /HEAD>
<BODY BGCOLOR=EOFFFO>
<H1>Hallo
< %= (request.getRemoteUser() != null? ", " +
request.getRemoteUser() : "") %>
! Ich bin Connection Caching JSP.
< /H1>
<HR>
< B> Ich erhalte die Verbindung aus dem Cache und recycel sie wieder.
< /B>
<P>
<%
versuchen {
Verbindung conn = cods.getConnection();
Anweisung stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery ("SELECT ename, sal " +
„FROM scott.emp ORDER BY ename“);
if (rset.next()) {
%>
< TABLE BORDER=1 BGCOLOR="C0C0C0">
< TH WIDTH=200 BGCOLOR="white"> < I>Name des Mitarbeiters< /I> </ /TH>
< TH WIDTH=100 BGCOLOR="white"> < I>Gehalt</I> </ /TH>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> < /TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> < /TD>
< /TR>
< % while (rset.next()) {
%>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> < /TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> < /TD>
< /TR>
< % }
%>
< /TABLE>
< % }
anders {
%>
< P> Leider hat die Abfrage keine Zeilen zurückgegeben. < /P>
<%
}
rset.close();
stmt.close();
conn.close(); // Die Verbindung wieder in den Pool stellen
} Catch (SQLException e) {
out.println("< P>" + "Bei der Abfrage ist ein Fehler aufgetreten:");
out.println ("< PRE>" + e + "< /PRE>
< P>");
}
%>
< /BODY>
< /HTML>
Verwenden Sie die Anwendung, um die Datenbankverbindung zwischenzuspeichern. Bei jeder Verwendung wird sie aus dem Puffer entnommen und nach der Verwendung zurückgegeben.