يستدعي Jsp أمر Javeabean. توجد إعدادات النطاق في UseBean، وبشكل عام هناك إعدادات مثل صفحة جلسة التطبيق. Page هي
كائن javabean جديد يتم إعادة إنشائه لكل صفحة. يتم استخدام هذا بشكل عام في حالة مشاركة العديد من برامج Jsp يمكنك استخدامه.
تعنيالجلسة
والتطبيق أن javabean سيكون موجودًا دائمًا. بالمقارنة مع الجلسة، يكون التطبيق مرتبطًا
بالتطبيق .، يشبه
برنامج servlet، ويشبه "المتغيرات العامة" للنظام بأكمله، ولا يوجد سوى مثيل واحد.
وظائف التحكم في MVC
لذلك، فإن ميزة التطبيق مناسبة جدًا لوظائف التحكم في MVC. بشكل عام، يستخدم MVC التقليدي servlets لوظائف التحكم. V هي
في الأساس
صفحة Jsp، وM عبارة عن برنامج Javabean.ومع ذلك، مع تحسين وظائف Jsp وتعزيزها، هناك اتجاه تدريجي لاستبدال servlet. في الممارسة العملية، نستخدم Jsp أكثر في بعض الأحيان
من أجل
توفير المتاعب، بدلاً من servlet، وخاصة وظيفة التحكم الخاصة به.في الواقع، يتم تغليف وظيفة التحكم هذه في Javabean. يستخدم Jsp النطاق = التطبيق لاستدعاء Javabean بهذه الطريقة
، يشبه Javabean مع وظيفة التحكم servlet المقيم في الذاكرة ويتفاعل مع البرامج الوسيطة المختلفة في الخلفية.
عرض "الصفحة الرئيسية"
في التطبيقات العملية، غالبًا ما يصل العديد من المستخدمين إلى الصفحة في نفس الوقت، مثل الصفحة الرئيسية. هناك العديد من الوظائف التي يمكن تشغيلها على هذه الصفحة الرئيسية، مثل
تصنيف الدليل يجب قراءة بيانات الشجرة من قاعدة البيانات وتوسيعها وإخراجها إلى الصفحة الرئيسية. هذه الوظيفة مغلفة في Javabeans.
ثم عندما تستدعي الصفحة الرئيسية Jsp Javabean، استخدم النطاق = التطبيق، ثم استخدم خوارزمية التخزين المؤقت لبيانات الشجرة بهذه الطريقة، عندما يصل عدة
مستخدمين
إلى الصفحة الرئيسية في نفس الوقت، لا تحتاج الصفحة الرئيسية JSP إلى تشغيل Javabean في كل مرة. ثم قم بقراءة قاعدة البيانات بشكل متكرر.مما لا شك فيه أنه سيزيد السرعة بشكل كبير.
لذا، إذا كانت صفحتك الرئيسية Jsp تحتوي على عدد كبير من الزيارات، فيجب عليك قضاء المزيد من الوقت في تحسينها.
التخزين المؤقت لاتصال قاعدة البيانات
< jsp: معرف UseBean = "الكود"
class = "Oracle.jdbc.pool.OracleConnectionCacheImpl"
النطاق = "التطبيق" />
< الحدث:application_OnStart>
<%
cods.setURL("jdbc:Oracle:thin:@HOST:PORT:SID");
cods.setUser("سكوت");
cods.setPassword("tiger");
cods.setStmtCache (5);
%>
< /event:application_OnStart>
< %@ page import="java.sql.*, javax.sql.*, oracle.jdbc.pool.*" %>
< !------------------------------------------------ ----------------
* هذه صفحة JavaServer تستخدم التخزين المؤقت للاتصال
طلب
* يتم إنشاء ذاكرة التخزين المؤقت في نطاق التطبيق في
ملف globals.jsa.
* يتم الحصول على الاتصال من ذاكرة التخزين المؤقت وإعادة تدويره مرة واحدة
منتهي
.------------------------------------------------ --------------------!>
<أتش تي أم أل>
<الرأس>
<العنوان>
كونكاش جي إس بي
< /العنوان>
< /الرأس>
<BODY BGCOLOR=EOFFFO>
<H1>مرحبا
< %= (request.getRemoteUser() != null? ", " +
request.getRemoteUser() : "") %>
أنا أقوم بالتخزين المؤقت للاتصال JSP.
< /H1>
<الموارد البشرية>
< ب> أحصل على الاتصال من ذاكرة التخزين المؤقت وأعيد تدويره مرة أخرى.
< /ب>
<ف>
<%
يحاول {
اتصال conn = cods.getConnection();
البيان stmt = conn.createStatement ()؛
ResultSet rset = stmt.executeQuery ("SELECT ename, sal" +
"من scott.emp أمر حسب الاسم");
إذا (rset.next()) {
%>
< حدود الجدول=1 BGCOLOR="C0C0C0">
< TH WIDTH=200 BGCOLOR="white"> < I>اسم الموظف< /I> </ /TH>
< TH WIDTH=100 BGCOLOR="white"> < I>الراتب</I> </ /TH>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> < /TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> < /TD>
< /تر>
< % بينما (rset.next()) {
%>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> < /TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> < /TD>
< /تر>
< % }
%>
< /الجدول>
< % }
آخر {
%>
< P> عذرًا، لم يُرجع الاستعلام أي صفوف!
<%
}
rset. Close();
stmt. Close();
conn.Close(); // أعد الاتصال إلى التجمع
} قبض على (SQLException ه) {
out.println("< P>" + "حدث خطأ أثناء الاستعلام:");
out.println ("< PRE>" + e + "< /PRE>
<ص>");
}
%>
< /الجسم>
< /أتش تي أم أل>
استخدم التطبيق للتخزين المؤقت لاتصال قاعدة البيانات، وفي كل مرة يتم استخدامه، يتم إخراجه من المخزن المؤقت وإعادته بعد الاستخدام.