أرسل بواسطة الملصق الأصلي: 2008-06-17 15:26:20
lJBS
1. اذكر 10 مزايا للغة جافا
ج: مجاني، مفتوح المصدر، متعدد المنصات (استقلال النظام الأساسي)، سهل الاستخدام، وظائف كاملة، موجه للكائنات، قوي، متعدد الخيوط، محايد البنية، منصة ناضجة لتطبيقات المؤسسات، التطبيقات اللاسلكية
2. قم بإدراج 10 مصطلحات برمجة موجهة للكائنات في JAVA
أ: الحزمة، الطبقة، الواجهة، الكائن، السمة، الطريقة، المنشئ، الميراث، التغليف، تعدد الأشكال، التجريد، النموذج
3. قم بإدراج 6 حزم شائعة الاستخدام في JAVA
Java.lang;java.util;java.io;java.sql;java.awt;java.net;java.applet;javax.swing
4. ما هي وظائف وخصائص المعرفات في JAVA؟ الوظيفة: يتم استخدام المعرفات لتسمية المتغيرات والفئات والأساليب الخصائص: بالإضافة إلى البدء بالأحرف والشرطات السفلية "_" و"$"، يمكن أن يتبعها الأحرف أو الشرطة السفلية "_" و"$" أو الأحرف أو الأرقام
Java حساسة لحالة الأحرف، والمعرفات ليست استثناءً
5. ما هي خصائص الكلمات الرئيسية في JAVA؟ قم بإدراج 20 كلمة رئيسية على الأقل
تسمى بعض الكلمات في Java التي تُعطى معاني محددة وتُستخدم لأغراض خاصة بالكلمات الأساسية
جميع كلمات Java الأساسية هي أحرف صغيرة، وTURE وFALSE وNULL وما إلى ذلك ليست كلمات Java رئيسية؛
goto وconst، على الرغم من عدم استخدامهما مطلقًا، يتم حجزهما ككلمات رئيسية لـ Java؛
يوجد إجمالي 51 كلمة رئيسية Java في •
تأكيد مجردة فاصل منطقي بايت يستمر
حالة الصيد فئة char const مزدوجة
الافتراضي يفعل يمتد آخر التعويم النهائي
لفترة طويلة إذا نفذت الاستيراد
مثيل فارغ أصلي جديد لواجهة int
حزمة خاصة محمية عودة عامة قصيرة
قام staticfp super Switch بمزامنة هذا
بينما يلقي رمي الفراغ محاولة عابرة
متقلب
6. كيف يتم تصنيف أنواع البيانات في جافا؟
يمكن تقسيمها إلى أنواع بيانات بسيطة وأنواع بيانات مرجعية:
أنواع البيانات البسيطة: النوع الرقمي (بايت، قصير، int، طويل، عائم مزدوج)، نوع الحرف (char)، النوع المنطقي (boolean)؛
أنواع البيانات المرجعية: الفئة، الواجهة، المصفوفة.
7. تصنيف وأمثلة للمشغلين في JAVA
• فاصل:,,;,[],()
• العوامل الحسابية: +، ―، *، /، %، ++، ――;
• العوامل العلائقية: >، <، >=، <=، ==، !=
• العوامل المنطقية المنطقية: !, &, |, ^, &&, ||
• عوامل البت: &، |، ^، ~، >>، < <، >>>؛
• عامل التعيين: = عامل التعيين الموسع: +=، ―=، *=، /=
• عامل تسلسل السلسلة: +
• عامل الشكل: ()
8. وظيفة واستخدام الكلمات الرئيسية سوبر وهذه
• استخدم super في فئة Java للإشارة إلى مكونات الفئة الأصلية
- يمكن استخدامها للوصول إلى السمات المحددة بشكل فائق في الفئة الأصل
- يمكن استخدامه لاستدعاء طريقة العضو المحددة بشكل فائق في الفئة الأصل
- يمكن استخدامه لاستدعاء مُنشئ الفئة الفائقة super في مُنشئ الفئة الفرعية
- لا تقتصر إمكانية التتبع على الفئة الأصلية المباشرة الفائقة
من أجل حل مشكلة تعارض التسمية وعدم اليقين للمتغيرات، تم تقديم الكلمة الأساسية "هذا" لتمثيل الكائن الحالي للطريقة التي يقع فيها. جافا
- يشير المنشئ إلى الكائن الجديد الذي أنشأه المنشئ
- تشير الطريقة إلى الكائن الذي يستدعي الطريقة
•
- قم بالإشارة إلى متغيرات المثيل وأساليب الفئة في الطريقة أو مُنشئ الفئة نفسها
- تمرير الكائن الحالي كمعلمة إلى أساليب أو منشئات أخرى
- يستخدم لاستدعاء المنشئين الآخرين المثقلين
9. ما هو التعبير في جافا؟ ماذا يفعل؟
• التعبير هو مزيج من العوامل والمعاملات، وهو مكون أساسي في أي لغة برمجة
• تسمح التعبيرات للمبرمجين بإجراء العمليات الحسابية ومقارنة القيم والعمليات المنطقية ومعالجة الكائنات في Java.
• بعض الأمثلة على التعبيرات:
-X
– س+10
– ص=س+10
–آر[10]
– Student.geName()
10. أنشئ جدولاً يسرد جميع المعدلات في JAVA ونطاق تطبيقها (هل يمكنهم تعديل المنشئات، والخصائص، والكتل المجانية، وما إلى ذلك)
فئة سمة طريقة منشئ الطبقة الداخلية المجانية
العامة YYY Y Y
محمي YY Y Y
(افتراضي) YYYYYY
خاص يي يي
النهائي YYYY
مجردة Y Y Y
ثابت Y YY
11. اكتب طريقة لطباعة جدول الضرب باستخدام حلقة for
/**
* حلقة for تطبع جدول الضرب
*/
publicvoid nineNineMultiTable()
{
من أجل (int i = 1,j = 1; j <= 9; i++) {
System.out.print(i+"*"+j+"="+i*j+" ");
إذا (ط == ي)
{
أنا=0;
ي++;
System.out.println();
}
}
}
12. بالنظر إلى كائن java.util.Date، كيفية تحويله إلى سلسلة بتنسيق "2007-3-22 20:23:22"
/**
* تحويل التاريخ إلى سلسلة بتنسيق ثابت
*@paramdate
*@returnstr
*/
سلسلة عامة dateToStr(java.util.Date date)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(date);
شارع العودة؛
}
13. اكتب طريقة يمكنها تحديد ما إذا كان أي عدد صحيح أوليًا أم لا.
/**
* تحديد ما إذا كان أي عدد صحيح هو أولي
*@param
*@returnboolean
*/
publicboolean isPrimes(int n)
{
for (int i = 2; i <= Math.sqrt(n); i++) {
إذا (ن٪ ط == 0)
{
returnfalse;
}
}
عودة صحيحة؛
}
14. اكتب طريقة لإدخال أي عدد صحيح وإرجاع مضروبه
/**
* الحصول على مضروب أي عدد صحيح
*@param
*@العودة !
*/
عامل النشر (int n)
{
// العودية
إذا (ن==1)
{
العودة 1؛
}
إرجاع n*factorial(n-1);
// غير عودي
// إنت متعدد = 1؛
// for (int i = 2; i <= n; i++) {
// متعدد*=i;
// }
// إرجاع متعدد؛
}
15. اكتب طريقة تستخدم البحث الثنائي لتحديد ما إذا كان هناك أي عدد صحيح موجود في أي مصفوفة أعداد صحيحة، إذا كان موجودًا، قم بإرجاع موضع الفهرس الخاص به في المصفوفة.
/**
* البحث الثنائي عن موضع عدد صحيح محدد في مصفوفة الأعداد الصحيحة (العودي)
*@paramdataset
*@paramdata
*@parambeginIndex
*@paramendIndex
*@returnindex
*/
publicint البحث الثنائي (مجموعة بيانات int[]، بيانات int، int beginIndex، int endIndex)
{
int midIndex = (beginIndex+endIndex)/2;
if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex)return -1;
إذا (البيانات <مجموعة البيانات[midIndex])
{
إرجاع البحث الثنائي(dataset,data,beginIndex,midIndex-1);
}elseif(بيانات>مجموعة البيانات[midIndex])
{
return BinarySearch(dataset,data,midIndex+1,endIndex);
}آخر
{
إرجاع الفهرس المتوسط؛
}
}
/**
* بحث ثنائي عن موضع عدد صحيح محدد في مصفوفة الأعداد الصحيحة (غير عودي)
*@paramdataset
*@paramdata
*@returnindex
*/
publicint البحث الثنائي (مجموعة بيانات int[]، بيانات int)
{
int beginIndex = 0;
int endIndex = dataset. length - 1;
int midIndex = -1;
if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex)return -1;
بينما (beginIndex <= endIndex) {
midIndex = (beginIndex+endIndex)/2;
إذا (بيانات <dataset[midIndex]) {
endIndex = midIndex-1;
} elseif(data>dataset[midIndex]) {
beginIndex = midIndex+1;
}آخر
{
إرجاع الفهرس المتوسط؛
}
}
العودة -1؛
}
16. مثال على قيام مربي بإطعام الحيوانات طعامًا يعكس التفكير الموجه للكائنات في JAVA وفائدة الواجهات (الفصول المجردة)
الحزمة com.softeem.demo;
/**
*@authorleno
* واجهة الحيوان
*/
واجهة الحيوان
{
publicvoid Eat(طعام طعام);
}
/**
*@authorleno
* نوع الحيوان : قطة
*/
فئة القط تنفذ الحيوان
{
publicvoid أكل (طعام طعام)
{
System.out.println("الهريرة تأكل"+food.getName());
}
}
/**
*@authorleno
* نوع الحيوان : كلب
*/
فئة الكلب تنفذ الحيوان
{
publicvoid أكل (طعام طعام)
{
System.out.println("جرو يمضغ"+food.getName());
}
}
/**
*@authorleno
* فئة مجردة الغذاء
*/
AbstractclassFood
{
اسم السلسلة المحمية؛
سلسلة عامة getName () {
اسم الإرجاع؛
}
publicvoid setName(اسم السلسلة) {
this.name = name;
}
}
/**
*@authorleno
*المجموعة الغذائية: الأسماك
*/
فئة الأسماك تمتد الغذاء
{
السمكة العامة (اسم السلسلة) {
this.name = name;
}
}
/**
*@authorleno
*المجموعة الغذائية: العظام
*/
فئة العظام تمد الغذاء
{
العظام العامة (اسم السلسلة) {
this.name = name;
}
}
/**
*@authorleno
*فئة المربي
*
*/
com.classFeeder
{
/**
* يقوم المربي بإطعام نوع معين من الطعام لنوع معين من الحيوانات
*@paramanimal
*@paramfood
*/
علف publicvoid (حيوان حيواني، طعام غذائي)
{
Animal.eat(food);
}
}
/**
*@authorleno
*إطعام مربي التجارب حيواناتهم غذاءً
*/
publicclass TestFeeder {
publicstaticvoid الرئيسي(String[] args) {
وحدة التغذية المغذية = وحدة التغذية الجديدة () ؛
حيوان الحيوان=كلب جديد();
الغذاء food=new Bone("عظم اللحم");
Feeder.feed(animal,food); // أطعم الكلب عظام اللحم
Animal=new Cat();
food=new Fish("fish");
Feeder.feed(animal,food); // أطعم القطة الأسماك
}
}
18. قم بإنشاء فئة أحادية الوضع وقم بتحميل ملف الخصائص مرة واحدة فقط
الحزمة com.softeem.demo;
استيراد java.io.FileInputStream؛
import java.io.FileNotFoundException;
import java.io.IOException;
استيراد java.io.InputStream؛
import java.util.Properties;
/**
*@authorleno
*الوضع الفردي، مما يضمن تحميل ملف خاصية التكوين مرة واحدة فقط أثناء التطبيق بأكمله
*/
فئة عامة سينجلتون {
مثيل Singleton الخاص؛
سلسلة خاصة ثابتة CONFIG_FILE_PATH = "E:\config.properties";
تكوين الخصائص الخاصة؛
سينجلتون خاص ()
{
التكوين = خصائص جديدة ()؛
InputStream هو؛
يحاول {
is = new FileInputStream(CONFIG_FILE_PATH);
config.load(is);
قريب () ؛
} قبض على (FileNotFoundException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
publicstatic Singleton getInstance()
{
إذا (المثيل==فارغ)
{
مثيل = مفرد جديد () ؛
}
returninstance;
}
الخصائص العامة getConfig() {
returnconfig;
}
publicvoid setConfig(خصائص التكوين) {
this.config = config;
}
}
ل J2SE
19. انسخ الدليل (الملف) إلى المسار المحدد
/**
* انسخ دليلاً أو ملفًا إلى المسار المحدد
*@paramsource
*@paramtarget
*/
نسخة publicvoid (مصدر الملف، هدف الملف)
{
File tarpath = new File(target,source.getName());
إذا (source.isDirectory())
{
tarpath.mkdir();
File[] dir = source.listFiles();
لـ (int i = 0; i < dir.length; i++) {
Copy(dir[i],tarpath);
}
}آخر
{
يحاول {
InputStream is = new FileInputStream(source);
OutputStream os = new FileOutputStream(tarpath);
بايت[] buf = newbyte[1024];
إنت لين = 0;
بينما((لين = is.read(buf))!=-1)
{
os.write(buf,0,len);
}
قريب () ؛
os.Close();
} قبض على (FileNotFoundException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
}
20. مثال على مشكلة السحب البنكي باستخدام الخيوط المتعددة في JAVA
packagecom.softeem.demo;
/**
*@authorleno
*نوع الحساب
*يوجد رصيد افتراضي ويمكنك سحب الأموال
*/
حساب الفئة {
الرصيد العائم الخاص = 1000؛
publicfloat getBalance() {
توازن الإرجاع؛
}
publicvoid setBalance(الرصيد العائم) {
this.balance = Balance;
}
/**
*تحتاج طرق السحب إلى المزامنة
*@باراموني
*/
عمليات السحب العامة المتزامنة (الأموال العائمة)
{
إذا (الرصيد> = المال)
{
System.out.println("مأخوذ"+money+"يوان!");
يحاول {
Thread.sleep(1000);
} قبض على (InterruptedException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
الرصيد-=المال؛
}
آخر
{
System.out.println("عذرًا، الرصيد غير كافٍ!");
}
}
}
/**
*@authorleno
* البطاقة المصرفية
*/
فئة TestAccount1 تمتد الموضوع {
حساب حساب خاص؛
TestAccount1 العام (حساب الحساب) {
this.account = account;
}
@تجاوز
تشغيل الفراغ العام () {
account.withdrawals(800);
System.out.println("الرصيد هو:"+account.getBalance()+"يوان!");
}
}
/**
*@authorleno
* دفتر الحسابات الجاري
*/
فئة TestAccount2 تمتد الموضوع {
حساب حساب خاص؛
TestAccount2 العام (حساب الحساب) {
this.account = account;
}
@تجاوز
تشغيل الفراغ العام () {
account.withdrawals(700);
System.out.println("الرصيد هو:"+account.getBalance()+"يوان!");
}
}
اختبار الطبقة العامة
{
publicstaticvoid الرئيسي(String[] args) {
حساب الحساب = حساب جديد ()؛
TestAccount1 testAccount1 = new TestAccount1(account);
testAccount1.start();
TestAccount2 testAccount2 = new TestAccount2(account);
testAccount2.start();
}
}
21. استخدم الخيوط المتعددة في JAVA كمثال لمشكلة مبيعات تذاكر محطة القطار
الحزمة com.softeem.demo;
/**
*@authorleno
* مبيعات التذاكر
*/
فئة SaleTicket تنفذ Runnable {
التذاكر الداخلية = 100؛
تشغيل الفراغ العام () {
بينما (التذاكر > 0) {
أُوكَازيُون()؛
// أو قم بتنفيذه بهذه الطريقة
// متزامن (هذا) {
// إذا (التذاكر > 0) {
// System.out.println(Thread.currentThread().getName() + "بيع الأول"
// + (100 - تذاكر + 1) + "تذاكر")؛
// التذاكر--;
// }
// }
}
}
بيع عام متزامن () {
إذا (التذاكر > 0) {
System.out.println(Thread.currentThread().getName() + "البيع أولاً"
+ (100 - تذاكر + 1) + "تذاكر")؛
التذاكر--;
}
}
}
publicclass TestSaleTicket {
publicstaticvoid الرئيسي(String[] args) {
SaleTicket st = new SaleTicket();
new Thread(st, "نافذة رقم 1").start();
new Thread(st, "نافذة رقم 2").start();
new Thread(st, "نافذة رقم 3").start();
new Thread(st, "نافذة رقم 4").start();
}
}
22. مثال على قضايا المنتجين والمستهلكين باستخدام الخيوط المتعددة في JAVA
الحزمة com.softeem.demo;
يقوم منتج الفصل بتنفيذ Runnable
{
مكدس SyncStack الخاص؛
منتج عام (مكدس SyncStack) {
this.stack = stack;
}
تشغيل الفراغ العام () {
for (int i = 0; i < stack.getProducts().length; i++) {
سلسلة المنتج = "المنتج"+i;
Stack.push(product);
System.out.println("تم الإنتاج: "+product);
يحاول
{
Thread.sleep(200);
}
قبض على (InterruptedException ه)
{
printStackTrace();
}
}
}
}
فئة المستهلك تنفذ Runnable
{
مكدس SyncStack الخاص؛
المستهلك العام (مكدس SyncStack) {
this.stack = stack;
}
تشغيل الفراغ العام () {
for(int i=0;i <stack.getProducts().length;i++)
{
منتج السلسلة =stack.pop();
System.out.println("مستهلك: "+منتج);
يحاول
{
Thread.sleep(1000);
}
قبض على (InterruptedException ه)
{
printStackTrace();
}
}
}
}
فئة SyncStack
{
سلسلة خاصة[] المنتجات = سلسلة جديدة[10];
publicindex;
دفع publicsynchronizedvoid (منتج سلسلة)
{
إذا (index==product.length())
{
يحاول {
انتظر()؛
} قبض على (InterruptedException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
إعلام () ؛
المنتجات[index]=المنتج;
الفهرس++;
}
سلسلة البوب المتزامنة العامة ()
{
إذا (الفهرس==0)
{
يحاول {
انتظر()؛
} قبض على (InterruptedException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
إعلام () ؛
فِهرِس--؛
منتج السلسلة = المنتجات [الفهرس]؛
عودة المنتج؛
}
السلسلة العامة[] getProducts() {
إرجاع المنتجات؛
}
}
publicclass TestProducerConsumer {
publicstaticvoid الرئيسي(String[] args) {
مكدس SyncStack=new SyncStack();
منتج p=منتج جديد(مكدس);
المستهلك ج = المستهلك الجديد (المكدس)؛
موضوع جديد(ع).بدء();
موضوع جديد(ج).بدء();
}
}
23. البرمجة لتحقيق نقل كائنات الطالب المتسلسلة (sno، sname) على الشبكة
الحزمة com.softeem.demo;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
استيراد java.io.Serializable؛
import java.net.ServerSocket;
استيراد java.net.Socket؛
يقوم طالب الفصل بتطبيق Serializable {
كثافة العمليات الخاصة؛
اسم سلسلة خاصة؛
الطالب العام (int sno، سلسلة sname) {
this.sno = sno;
this.sname = sname;
}
كثافة العمليات العامة getSno () {
عودة سنو.
}
مجموعة الفراغ العامة (int sno) {
this.sno = sno;
}
سلسلة عامة getSname () {
اسم العودة؛
}
مجموعة الفراغ العام (اسم السلسلة) {
this.sname = sname;
}
@تجاوز
سلسلة عامة إلى سلسلة () {
إرجاع "رقم الطالب:" + sno + "؛الاسم:" + sname؛
}
}
فئة MyClient تمتد الموضوع {
@تجاوز
تشغيل الفراغ العام () {
يحاول {
المقبس s = جديد المقبس ("المضيف المحلي"، 9999)؛
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
Student stu = (Student) ois.readObject();
System.out.println("يستقبل برنامج العميل كائن الطالب المنقول من برنامج الخادم >>" + stu);
ois. Close();
s. Close();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} التقاط (ClassNotFoundException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
}
فئة MyServer تمتد الموضوع {
@تجاوز
تشغيل الفراغ العام () {
يحاول {
ServerSocket ss = new ServerSocket(9999);
المقبس s = ss.accept();
ObjectOutputStream ops = new ObjectOutputStream(s.getOutputStream());
Student stu = new Student(1, "Zhao Benshan");
ops.writeObject(stu);
ops.Close();
s. Close();
ss. Close();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
}
نقل الطبقة العامة {
public static void main(String[] args) {
جديد MyServer().start();
جديد MyClient().start();
}
}
ل JDBC
24. استخدم مكون dom4j لتحليل ملفات تنسيق XML التالية:
<?xml version="1.0" encoding="UTF-8"?>
<المولد>
<اسم الجدول = "عملية تسجيل الدخول" = "1">
<column name="username" Handle="0">aaa </column>
<column name="password" Handle="0">123 </column>
</الجدول>
<اسم الجدول = "عملية تسجيل الدخول" = "2">
<column name="id" Handle="1">1 </column>
<column name="username" Handle="0">bbb </column>
<column name="password" Handle="0">444 </column>
</الجدول>
<اسم الجدول = "عملية تسجيل الدخول" = "3">
<column name="id" Handle="1">4 </column>
</الجدول>
</مولد>
القواعد: <الجدول> العملية 1 إدراج الجدول، تحديث الجدول 2، حذف الجدول 3.
<column>يتم استخدام جدول المقبض 1 حيث يتم استخدام الجدول 0 كحقل عملية.
المتطلبات: إنشاء ثلاث عبارات SQL وفقًا للقواعد! (أي إنشاء طريقة لتحليل ملف xml لإنشاء سلسلة تحتوي على ثلاث عبارات SQL)
/**
*تحليل ملف XML لإنشاء سلسلة تحتوي على عبارات SQL القابلة للتنفيذ
*@paramxmlFileName
*@returnSQL
*/
سلسلة عامة parseXmltoSQL(String xmlFileName) {
StringBuffer sbsql = new StringBuffer();
قارئ SAXReader = جديد SAXReader();
يحاول {
مستند المستند = Reader.read(new File(xmlFileName));
عنصر العنصر = document.getRootElement();
Iterator it = element.elementIterator("table");
بينما (it.hasNext()) {
العنصر = (العنصر) it.next();
// احصل على العمليات على الطاولة
String oper = element.attributeValue("operation");
// احصل على اسم الجدول
String tableName = element.attributeValue("name");
إذا ("1". يساوي (التشغيل)) {
sbsql.append("insert into ").append(tableName);
Iterator it2 = element.elementIterator("column");
String columnName1 = null;
String columnValue1 = null;
String columnName2 = null;
String columnValue2 = null;
إذا (it2.hasNext()) {
العنصر = (العنصر) it2.next();
columnName1 = element.attributeValue("name");
columnValue1 = element.getText();
}
إذا (it2.hasNext()) {
العنصر = (العنصر) it2.next();
columnName2 = element.attributeValue("name");
columnValue2 = element.getText();
}
sbsql.append("("+columnName1+"،"+columnName2+")"+" value('"+columnValue1+"','"+columnValue2+"')n");
} elseif ("2". يساوي (التشغيل)) {
sbsql.append("update ").append(tableName);
Iterator it2 = element.elementIterator("column");
String columnName1 = null;
String columnValue1 = null;
String columnName2 = null;
String columnValue2 = null;
String columnName3 = null;
String columnValue3 = null;
إذا (it2.hasNext()) {
العنصر = (العنصر) it2.next();
columnName1 = element.attributeValue("name");
columnValue1 = element.getText();
}
إذا (it2.hasNext()) {
العنصر = (العنصر) it2.next();
columnName2 = element.attributeValue("name");
columnValue2 = element.getText();
}
إذا (it2.hasNext()) {
العنصر = (العنصر) it2.next();
columnName3 = element.attributeValue("name");
columnValue3 = element.getText();
}
sbsql.append(" set "+columnName2+"='"+columnValue2+"',"+columnName3+"='"+columnValue3+"' Where "+columnName1+"="+columnValue1+"n");
}elseif ("3". يساوي (التشغيل)) {
sbsql.append("حذف من ").append(tableName);
Iterator it2 = element.elementIterator("column");
String columnName1 = null;
String columnValue1 = null;
إذا (it2.hasNext()) {
العنصر = (العنصر) it2.next();
columnName1 = element.attributeValue("name");
columnValue1 = element.getText();
}
sbsql.append(" حيث "+columnName1+"="+columnValue1);
}
}
} قبض على (DocumentException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
إرجاع sbsql.toString();
}
lJSP/سيرفلت
25. اكتب الكائنات المضمنة في JSP واشرح وظائفها
الطلب: الطلب يمثل كائن HttpServletRequest. فهو يحتوي على معلومات حول طلب المتصفح ويوفر عدة طرق مفيدة للحصول على بيانات ملفات تعريف الارتباط والرأس. تمثل الاستجابة: الاستجابة كائن HttpServletResponse وتوفر عدة طرق لإعداد الاستجابة المرسلة مرة أخرى إلى المتصفح (مثل ملفات تعريف الارتباط ومعلومات الرأس وما إلى ذلك). كائن out:out هو مثيل لـ javax.jsp.JspWriter ويوفر العديد من الطرق التي يمكنك يمكن استخدامه لإرسال الإخراج مرة أخرى إلى المتصفح. pageContext: يمثل pageContext كائن javax.servlet.jsp.PageContext. إنها واجهة برمجة التطبيقات (API) المستخدمة لتسهيل الوصول إلى نطاقات مختلفة من مساحات الأسماء والكائنات المرتبطة بـ servlet، وتشتمل على طرق الوظائف الشائعة المرتبطة بـ servlet. تمثل الجلسة: الجلسة كائن javax.servlet.http.HttpSession المطلوب. يمكن للجلسة تخزين تطبيق معلومات حالة المستخدم: يمثل التطبيق كائن javax.servle.ServletContext. يساعد هذا في العثور على معلومات حول محرك servlet وبيئة servlet config:config يمثل كائن javax.servlet.ServletConfig. يتم استخدام هذا الكائن للوصول إلى معلمات التهيئة لمثيل servlet. الصفحة: تمثل الصفحة مثيل servlet الذي تم إنشاؤه من هذه الصفحة.
استثناء: كائن الاستثناء هو كائن استثناء عند حدوث استثناء أثناء تشغيل الصفحة، يتم إنشاء هذا الكائن. إذا أرادت صفحة JSP استخدام هذا الكائن، فيجب عليها تعيين isErrorPage على true، وإلا فلن يمكن تجميعه. إنه في الواقع النظير لـ java.lang.Throwable