تارا فایل

پاورپوینت مفاهیم جاوا


مفاهیم جاوا
بنام خدا

رئوس اصلی مطالب
Java Virtual Machine
Java Applets
JavaBeans
JavaScript
Java Servlet
Java Server Page
Java DataBase Connectivity

ماشین مجازی جاوا(JVM)

سلسله مراتب JApplet

چرخه زندگی Applet
مقدار دهی اولیه (Initialize)
شروع (start)
توقف (stop)
پاکسازی (cleanup)
init()
start()
stop()
destroy()

مثال از بدنه Applet

تگ <applet>
CODEBASE=“example/”
CODEBASE = “http://ce.sharif.edu/~r_pournaghi”

<BODY>
… <APPLET CODE=“Sample.class" WIDTH=150 HEIGHT=150> </APPLET>

</BODY>
آدرس دهی نسبی
آدرس دهی مطلق

تگ <applet> (ادامه…)
<APPLET CODE=“Sample.class" WIDTH=150 HEIGHT=150>
<PARAM NAME=“xvalue” VALUE = “100”>
<PARAM NAME=“yvalue” VALUE = “100”>
</APPLET>

x = Integer.parsInt(getParameter(“xvalue”)); //instead of x = 100;
Y = Integer.parsInt(getParameter(“yvalue”)); //instead of y = 100;

بدنه applet:
بدنه فایل html:
ALT و ARCHIVE در بدنه تگ <applet>

محدودیت های Applet
خواندن از و نوشتن در فایل در رایانه کاربر.
برقراری ارتباط با سایر رایانه ها.
اجرای برنامه ای در رایانه کاربر.
دسترسی به برخی صفت های رایانه(system properties)
بارگذاری کتابخانه به جز کتابخانه های موجود در java.*

مثال از اجرای Applet

آشنایی با JavaBeans
مولفه های(components) نرم افزاری تحت زبان java
قابل استفاده مجدد.
به صورت گرافیکی توسط builder tools قابل دستکاری

آشنایی با JavaBeans(ادامه)
جعبه ابزار(Toolbox)
لیست صفت ها(properties)

آشنایی با JavaBeans(ادامه)
کلاس ها جاوایی هستند که دارای صفت (property) می باشند و از طریق رخدادها با سایر bean ها ارتباط برقرار می کنند.
java.awt.Canvas پدر تمامی bean هایی است که دارای واسط گرافیکی می باشند.
Serializable interface را باید پیاده سازی (implement) کنند

یک bean ساده

نمایش مثال قبل در BeanBox

مفاهیم اصلی در JavaBeans
Introspection
Persistence (ماندگاری)
Customization
Methods(متدها)
Properties(صفت ها)
Events(رخدادها)

Introspection
امکان نمایش گرافیکی bean و تغییر آن را در زمان طراحی در builder tool فراهم می کند.

اجرای دستورالعمل های خاص(design patterns) در هنگام ایجاد یک bean
در اختیار قراردادن اطلاعات صفت ها، رخدادها، متدها از طریق ایجاد کلاس Bean Information:
این کلاس باید BeanInfo را که یک interface است پیاده سازی کند. کلاس BeanInfo لیست امکانات bean را به صورت آشکار در اختیار builder tool قرار می دهد.

Persistence (ماندگاری)
به beanها امکان ذخیره و بازیابی وضعیت (state) خود را می دهد.
با استفاده از Java Object Serialization
پیاده سازی کلاس Serializable(که interface است)

(در object serialization، تمامی اطلاعات یک شی با فرمت خاصی در فایل ذخیره می شود و با بازخوانی آن فایل شی دوباره ساخته می شود.)

property editor
Customization
با بازنویسی(overriding) متدهای:

paintValue(…)
getCustomEditor()
supportsCustomEditor()

در کلاس PropertyManager

Methods(متدها)
بدون تفاوت با متدهای معمول جاوا
قابل صدا کردن از طریق سایر bean ها یا سایر کلاسهای فاقد ساختار bean

Properties(صفت ها)
کنترل کننده رفتار و ظاهر beanها
همان متغیرهای معمول که توسط builder tool قابل شناسایی هستند
از نوع متغیرهای خصوصی(private)
قابل دسترسی از طریق متدهای getter و setter
نام متدها:
public <returntype> get<Propertyname>(){…}
public void set<Propertyname> (parameter){…}

Properties(صفت ها)(ادامه)

Events(رخدادها)
امکان برقراری ارتباط بین Beanها را فراهم می کند.
مانند متدهای معمول جاوا هستند ولی طبق الگوی خاصی تعریف می شوند.
public void addTYPE(TYPE listener);
public void removeTYPE(TYPE listener);

به جای کلمه TYPE، نام کلاسی که مربوط به آن رخداد است قرار داده میشود:
MouseListener  addMouseListener
ActionListener  addActionListener

Events(رخدادها)(ادامه)

Events(رخدادها)(ادامه)
در BeanBox:
Edit
Events
action
actionPerformed

Properties(صفت ها)
Simple properties
Bound properties
Constrained properties
Indexed properties

Bound properties
به یک bean این امکان را می دهد که سایر beanها را از تغییر در مقدار یک صفت خود باخبر کند

Bound properties(ادامه)

Constrained properties
مانند صفت های bound
Beanی که تغییر در صفت را دریافت می کند توانایی رد کردن تغییر را دارد

Indexed properties
امکان دسترسی به مجموعه ای از مقادیر صفت را ممکن می کند.
فرم کلی:
دسترسی به تمامی مقادیر:
public <PropertyType>[] get<PropertyName>();
public void set<PropertyName>(<PropertyType>[] value);
دسترسی به مقادیر منحصربفرد:
public <PropertyType> get<PropertyName>(int index);
public void set<PropertyName>(int index, <PropertyType> value);

Indexed properties(مثال)

Indexed properties(ادامه مثال)
قابل ایجاد از طریق Customization

کار با BeanBox

کار با BeanBox(ادامه)

کار با BeanBox(ادامه)

کار با BeanBox(ادامه)

آشنایی با JavaScript
زبانی شی گرا ساخته شرکت Netscape
کد حاصل تفسیر می شود نه کامپایل(script)
انواع JavaScript:
سمت کاربر(client-side)
سمت خادم(server-side)
مورد استفاده:
برای ساخت صفحات پویا(dynamic)

آشنایی با JavaScript(ادامه)

آشنایی با JavaScript(ادامه)

آشنایی با JavaScript(ادامه)

مقایسه JavaScript با Java

کار کردن با اشیاء در JS
صفت های(properties) شی
ایجاد شی جدید
افزودن صفت
افزودن متد

صفت های(properties) شی

objectName.propertyName

مثال:

ایجاد شی جدید

استفاده از Object Initializers:
objectName = {property1:value1,…, propertyN:valueN}

استفاده از تابع سازنده(constructor):
myCar = {make=“Ford”, model=“Mustang”, year=1996}
function Car(make, model, year) {
this.make = make
this.model = model
this.year = year
}

mycar = new Car("Eagle", "Talon TSi", 1993)

افزودن صفت
افزودن صفت به یک نمونه خاص:
افزودن صفت به تمام نمونه- های هم نوع:
car.prototype.color = null
car1.color = "black”
car1.color = "black”

افزودن متد
فرم کلی:
object.methodname = function_name
object.methodname(params)

مثال:
function displayCar(){
print(“A beautiful “+this.year+” “+this.make+” “+this.model);
}

function car(make, model, year) {
this.make = make; this.model = model; this.year = year;
this.displayCar = displayCar
}

car1.displayCar();

اشیاء از پیش تعریف شده
Array Object (sort, reverse, …)
Date Object (get, set, …)
Math Object (floor, abs, round, …)
String Object (charAt, substr, concat, …)

قرار دادن JS در صفحات web
قرار دادن کد در بدنه صفحه

استفاده از فایل های .js(مناسب برای به اشتراک گذاری کد)

JS به عنوان مقادیر attribute ها

نحوه پاسخ گویی به یک رخداد در JS
تعریف کلی:
<TAG eventHandler="JavaScript Code">

مثال:
<INPUT TYPE="button" VALUE="Calculate" onClick="compute(this.form)">
<INPUT TYPE="button" NAME="Button1" VALUE="Open Sesame!”
onClick="window.open('mydoc.html', 'newWin')">

سلسله مراتب اشیاء در JS

نمونه: صفت ها و متدهای From

مثال از کار با JavaScript

مثال از کار با JavaScript

Java Servlet
جایگزین CGI
برای ایجاد صفحات پویا
واسطی بین درخواست کاربر و کاربرد یا پایگاه داده سمت کارگزار
کلاس جاوا که HttpServlet را پیاده سازی می کند.

وظیفه Servlet
خواندن داده های ارسال شده از طرف کاربر(معمولا موجود در from)
دریافت سایر اطلاعات موجود در درخواست HTTP(مثل قابلیت های مرورگر، cookies و …)
تولید نتیجه(از طریق اتصال با DB، فراخوانی یک کاربرد عتیقه و…)
قرار دادن نتیجه در قالب سند HTML
تعیین پارامترهای پاسخHTTP(مثل set کردن cookies)
ارسال سند به سمت کاربر

مزایای Servlet نسبت به CGI
کارا(efficient)
هر درخواست CGI یک پردازه می سازد ولی هر درخواست Servlet یک بند(thread) ایجاد می کند.
راحتی(convenient)
Servlet امکان تجزیه(parse) داده ای HTTP را به صورت خودکار تامین می کند.
قدرتمند(powerful)
Servlet امکان نگهداری داده های درخواست ها را فراهم می کند لذا امکان مدیریت session را آسان تر می کند.
قابلیت حمل(portable)

چرخه عمر Servlet
قرار گرفتن در حافظه
اجرا برای تولید نتیجه
خروج از حافظه
فراخوانی از سمت کارگزار
حالت ایده آل(ideal)

فراخوانی Servlet

متدهای HttpServlet
void doGet(HttpServletRequest request, HttpServletResponse response)
void doPost(HttpServletRequest request, HttpServletResponse response)
void doPut(HttpServletRequest request, HttpServletResponse response)
void doDelete(HttpServletRequest request, HttpServletResponse response)

مثال از Servlet

نتیجه اجرای مثال Servlet

Java Server Page (JSP)
امکان ایجاد صفحات پویا را با قراردادن کد JSP در بدنه سند HTTP فراهم میکند.

مزایای JSP نسبت به Servlet:
امکان جداسازی طراحی صفحات web از محتوای پویا
نیاز به استفاده از out.println(…) برای تولید HTML ندارد.
نیاز کمتری به آشنایی با زبان جاوا دارد.

تگ های اصلی JSP
Scriplet
Expression
Declaration

تگ Scriplet
هر بار که JSP فراخوانی می شود اجرا می گردد.
<html>
<body>
<% for (int i = 0; i < 2; i++) { %>
<p>Hello World!</p>
<% } %>
</body>
</html>
<html>
<body>
<p>Hello World!</p>
<p>Hello World!</p>
</body>
</html>

تگ Expression
هر بار که JSP فراخوانی می شود، مقدارش محاسبه میشود
<html>
<body>
<p><%= Integer.toString( 5 * 5 ) %></p>
</body>
</html>
<html>
<body>
<p>25</p>
</body>
</html>

تگ Declaration
برای قرار دادن اعلانات (declarations) جاوا در یک سند JSP بکار می رود.
<html>
<body>
<%! public boolean isPositive(int x)
{
if (x < 0) {
return false;
}
else {
return true;
}
} %>
</body>
</html>

Java DataBase Connectivity (JDBC)
واسطی بین برنامه جاوا و پایگاه داده SQL
یک برنامه جاوا از طریق JDBC یک SQL statement را به پایگاه داده ارسال می کند و نتیجه را دریافت می نماید.
هر driver پایگاه داده باید کلاس Driver جاوا را پیاده سازی کند.

ساختار معماری JDBC

آمادگی برای کار با JDBC
نصب پایگاه داده
دریافت driver مربوط به پایگاه داده نصب شده
افزودن مسیر ذخیره بسته(jar file) پایگاه داده در clathpath

اتصال به پایگاه داده
Connection con = DriverManager.getConnection(url,usr,psw);
URL:
jdbc:db2://machine:6789/sample, jdbc:mysql://localhost:3306/schedule
Statement stm =
con.createStatement(resultSetType, resultSetConcurrency);
resultSetType:
TYPE_FORWARD_ONLY
TYPE_SCROLL_INSENSITIVE
TYPE_SCROLL_SENSITIVE
resultSetConcurrency:
CONCUR_READ_ONLY
CONCUR_UPDATABLE
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

کار با پایگاه داده
int executeUpdate(String query)
ResultSet executeQuery(String query)
boolean execute(String query)

دریافت نتایج از طریق ReaultSet
Array getArray(String colName) ;
Date getDate(String columnName);
int getRow();
boolean relative(int rows);

منابع
Netscape communication Corp. “Client-Side JavaScript Guide, version 1.3”
Netscape communication Corp. “Client-Side JavaScript Reference version 1.3”
Netscape communication Corp. “Server-Side JavaScript Guide 1.2”
Sun Microsystems. “Java Tutorial, A practical guide for programmers”. 2004.
Beth Smith, “JavaBeans” y. 2000
Sun Microsystems. “Overview of Servlets and Java Server Pages”. Prentice Hall
Nelson Young. “Applets & Servlets”. University of Alberta, 2002
Julia Chen. “Introduction to JDBC”. 2005

پیوست ها

زبان های مبتنی بر کلاس و مبتنی بر شی

زبان های مبتنی بر کلاس و مبتنی بر شی(ادامه)

زبان های مبتنی بر کلاس و مبتنی بر شی(ادامه)

رخدادها در JS

رخدادها در JS(ادامه)

رخدادها در JS(ادامه)


تعداد صفحات : 82 | فرمت فایل : .ppt

بلافاصله بعد از پرداخت لینک دانلود فعال می شود