Download presentation
Presentation is loading. Please wait.
Published byAbigail Cross Modified over 6 years ago
1
مفاهیم جاوا ارائه کننده:رضا پورنقی آذر 1384 بنام خدا
دانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر
2
رئوس اصلی مطالب Java Virtual Machine Java Applets JavaBeans JavaScript
Java Servlet Java Server Page Java DataBase Connectivity
3
Java Application, Applet, API Classes
ماشین مجازی جاوا(JVM) Windows XP Solaris Mac OS Linux JVM برای Windows بار کننده کلاس مفسر جاوا برای Solaris برای برای Linux Java Application, Applet, API Classes کد قابل اجرا برای Windows
4
سلسله مراتب JApplet
5
مقدار دهی اولیه (Initialize)
چرخه زندگی Applet مقدار دهی اولیه (Initialize) init() شروع (start) start() توقف (stop) stop() پاکسازی (cleanup) destroy()
6
مثال از بدنه Applet
7
تگ <applet> <BODY>
... <APPLET CODE=“Sample.class" WIDTH=150 HEIGHT=150> </APPLET> … </BODY> CODEBASE=“example/” CODEBASE = “ آدرس دهی نسبی آدرس دهی مطلق
8
تگ <applet> (ادامه...)
بدنه فایل html: <APPLET CODE=“Sample.class" WIDTH=150 HEIGHT=150> <PARAM NAME=“xvalue” VALUE = “100”> <PARAM NAME=“yvalue” VALUE = “100”> </APPLET> بدنه applet: … x = Integer.parsInt(getParameter(“xvalue”)); //instead of x = 100; Y = Integer.parsInt(getParameter(“yvalue”)); //instead of y = 100; ALT و ARCHIVE در بدنه تگ <applet>
9
محدودیت های Applet خواندن از و نوشتن در فایل در رایانه کاربر.
برقراری ارتباط با سایر رایانه ها. اجرای برنامه ای در رایانه کاربر. دسترسی به برخی صفت های رایانه(system properties) بارگذاری کتابخانه به جز کتابخانه های موجود در java.*
10
مثال از اجرای Applet
11
آشنایی با JavaBeans مولفه های(components) نرم افزاری تحت زبان java
قابل استفاده مجدد. به صورت گرافیکی توسط builder tools قابل دستکاری
12
آشنایی با JavaBeans(ادامه)
جعبه ابزار(Toolbox) لیست صفت ها(properties)
13
آشنایی با JavaBeans(ادامه)
کلاس ها جاوایی هستند که دارای صفت (property) می باشند و از طریق رخدادها با سایر bean ها ارتباط برقرار می کنند. java.awt.Canvas پدر تمامی bean هایی است که دارای واسط گرافیکی می باشند. Serializable interface را باید پیاده سازی (implement) کنند
14
یک bean ساده
15
نمایش مثال قبل در BeanBox
16
مفاهیم اصلی در JavaBeans
Introspection Persistence (ماندگاری) Customization Methods(متدها) Properties(صفت ها) Events(رخدادها)
17
Introspection امکان نمایش گرافیکی bean و تغییر آن را در زمان طراحی در builder tool فراهم می کند. اجرای دستورالعمل های خاص(design patterns) در هنگام ایجاد یک bean در اختیار قراردادن اطلاعات صفت ها، رخدادها، متدها از طریق ایجاد کلاس Bean Information: این کلاس باید BeanInfo را که یک interface است پیاده سازی کند. کلاس BeanInfo لیست امکانات bean را به صورت آشکار در اختیار builder tool قرار می دهد.
18
Persistence (ماندگاری)
به beanها امکان ذخیره و بازیابی وضعیت (state) خود را می دهد. با استفاده از Java Object Serialization پیاده سازی کلاس Serializable(که interface است) (در object serialization، تمامی اطلاعات یک شی با فرمت خاصی در فایل ذخیره می شود و با بازخوانی آن فایل شی دوباره ساخته می شود.)
19
Customization با بازنویسی(overriding) متدهای: paintValue(…)
getCustomEditor() supportsCustomEditor() در کلاس PropertyManager property editor
20
Methods(متدها) بدون تفاوت با متدهای معمول جاوا
قابل صدا کردن از طریق سایر bean ها یا سایر کلاسهای فاقد ساختار bean
21
Properties(صفت ها) کنترل کننده رفتار و ظاهر beanها
همان متغیرهای معمول که توسط builder tool قابل شناسایی هستند از نوع متغیرهای خصوصی(private) قابل دسترسی از طریق متدهای getter و setter نام متدها: public <returntype> get<Propertyname>(){…} public void set<Propertyname> (parameter){…}
22
Properties(صفت ها)(ادامه)
23
Events(رخدادها) امکان برقراری ارتباط بین Beanها را فراهم می کند.
مانند متدهای معمول جاوا هستند ولی طبق الگوی خاصی تعریف می شوند. public void addTYPE(TYPE listener); public void removeTYPE(TYPE listener); به جای کلمه TYPE، نام کلاسی که مربوط به آن رخداد است قرار داده میشود: MouseListener addMouseListener ActionListener addActionListener
24
Events(رخدادها)(ادامه)
25
Events(رخدادها)(ادامه)
در BeanBox: Edit Events action actionPerformed
26
Properties(صفت ها) Simple properties Bound properties
Constrained properties Indexed properties
27
Bound properties به یک bean این امکان را می دهد که سایر beanها را از تغییر در مقدار یک صفت خود باخبر کند
28
Bound properties(ادامه)
29
Constrained properties
مانند صفت های bound Beanی که تغییر در صفت را دریافت می کند توانایی رد کردن تغییر را دارد
30
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);
31
Indexed properties(مثال)
32
Indexed properties(ادامه مثال)
قابل ایجاد از طریق Customization
33
کار با BeanBox
34
کار با BeanBox(ادامه)
35
کار با BeanBox(ادامه)
36
کار با BeanBox(ادامه)
37
آشنایی با JavaScript زبانی شی گرا ساخته شرکت Netscape
سمت کاربر(client-side) سمت خادم(server-side) مورد استفاده: برای ساخت صفحات پویا(dynamic)
38
آشنایی با JavaScript(ادامه)
39
آشنایی با JavaScript(ادامه)
40
آشنایی با JavaScript(ادامه)
41
مقایسه JavaScript با Java
JavaApplet کد تفسیر(interpret) می شود کد کامپایل شده و اجرا می شود مبتنی بر شیء(مفهوم کلاس وجود ندارد) مبتنی بر کلاس(اشیاء نمونه هایی از کلاس ها هستند) وراثت با استفاده از مفهوم نمونه سازی(prototype) وراثت از طریق سلسله مراتب کلاس ها صفت ها و متدها به صورت پویا به شیء اضافه می شود متدها و صفت ها نمی توانند به صورت پویا به کلاس ها و اشیاء افزوده شوند کد با تگ های HTML آمیخته هستند کلاس های Applet جدا از صفحات HTML می باشد نوع متغیرها اعلام نمی شوند نوع متغیرها باید اعلام شوند محدود در استفاده از منابع رایانه کاربر
42
کار کردن با اشیاء در JS صفت های(properties) شی افزودن صفت افزودن متد
ایجاد شی جدید افزودن صفت افزودن متد
43
صفت های(properties) شی
objectName.propertyName مثال: myCar[make]="Ford” myCar.make="Ford” myCar[model]="Mustang” myCar.model="Mustang” myCar[year]=1969 myCar.year=1969
44
ایجاد شی جدید استفاده از 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)
45
افزودن صفت افزودن صفت به یک نمونه خاص:
افزودن صفت به تمام نمونه- های هم نوع: car1.color = "black” car.prototype.color = null car1.color = "black”
46
افزودن متد فرم کلی: مثال: 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();
47
اشیاء از پیش تعریف شده Array Object (sort, reverse, …)
Date Object (get, set, …) Math Object (floor, abs, round, …) String Object (charAt, substr, concat, …) …
48
قرار دادن JS در صفحات web
قرار دادن کد در بدنه صفحه استفاده از فایل های .js(مناسب برای به اشتراک گذاری کد) JS به عنوان مقادیر attribute ها <SCRIPT LANGUAGE = "javascript1.2"> … </SCRIPT> <SCRIPT SRC="common.js"> <HR WIDTH="&{barWidth};%" ALIGN="LEFT"> <H4>&{myTitle};</H4>
49
نحوه پاسخ گویی به یک رخداد در 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')">
50
سلسله مراتب اشیاء در JS
51
نمونه: صفت ها و متدهای From
توصیف صفت مقدار ACTION در تگ FORM را برمی گرداند action آرایه ای که تمامی المان های FROM را برمی گرداند elements مقدار ENCTYPE در تگ FORM را برمی گرداند encoding تعداد المان های موجود در FROM را برمی گرداند length مقدار METHOD در تگ FORM را برمی گرداند method مقدار NAME در تگ FORM را برمی گرداند name مقدار TARGET در تگ FORM را برمی گرداند target توصیف متد متدی که پاسخگوی وقوع رخداد خاصی است را صدا می کند handleEvent کلیک ماوس بر دکمه reset را شبیه سازی می کند reset کلیک ماوس بر دکمه submit را شبیه سازی می کند submit
52
مثال از کار با JavaScript
53
مثال از کار با JavaScript
54
Java Servlet جایگزین CGI برای ایجاد صفحات پویا
واسطی بین درخواست کاربر و کاربرد یا پایگاه داده سمت کارگزار کلاس جاوا که HttpServlet را پیاده سازی می کند.
55
وظیفه Servlet خواندن داده های ارسال شده از طرف کاربر(معمولا موجود در from) دریافت سایر اطلاعات موجود در درخواست HTTP(مثل قابلیت های مرورگر، cookies و ...) تولید نتیجه(از طریق اتصال با DB، فراخوانی یک کاربرد عتیقه و...) قرار دادن نتیجه در قالب سند HTML تعیین پارامترهای پاسخHTTP(مثل set کردن cookies) ارسال سند به سمت کاربر
57
مزایای Servlet نسبت به CGI
کارا(efficient) هر درخواست CGI یک پردازه می سازد ولی هر درخواست Servlet یک بند(thread) ایجاد می کند. راحتی(convenient) Servlet امکان تجزیه(parse) داده ای HTTP را به صورت خودکار تامین می کند. قدرتمند(powerful) Servlet امکان نگهداری داده های درخواست ها را فراهم می کند لذا امکان مدیریت session را آسان تر می کند. قابلیت حمل(portable)
58
فراخوانی از سمت کارگزار
چرخه عمر Servlet قرار گرفتن در حافظه حالت ایده آل(ideal) فراخوانی از سمت کارگزار اجرا برای تولید نتیجه خروج از حافظه
59
فراخوانی Servlet Server Apache’s Web JServ Module Port 80
Server via JServ Web page applet image HTML controls client Port 80 JServ Module System Resources
60
متدهای 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)
61
مثال از Servlet
62
نتیجه اجرای مثال Servlet
63
Java Server Page (JSP) امکان ایجاد صفحات پویا را با قراردادن کد JSP در بدنه سند HTTP فراهم میکند. مزایای JSP نسبت به Servlet: امکان جداسازی طراحی صفحات web از محتوای پویا نیاز به استفاده از out.println(…) برای تولید HTML ندارد. نیاز کمتری به آشنایی با زبان جاوا دارد. Java <HTML> JSP + =
64
تگ های اصلی JSP Scriplet Expression Declaration
65
تگ Scriplet هر بار که JSP فراخوانی می شود اجرا می گردد. <html>
<body> <% for (int i = 0; i < 2; i++) { %> <p>Hello World!</p> <% } %> </body> </html> <html> <body> <p>Hello World!</p> </body> </html>
66
تگ Expression هر بار که JSP فراخوانی می شود، مقدارش محاسبه میشود
<html> <body> <p><%= Integer.toString( 5 * 5 ) %></p> </body> </html> <html> <body> <p>25</p> </body> </html>
67
تگ Declaration برای قرار دادن اعلانات (declarations) جاوا در یک سند JSP بکار می رود. <html> <body> <%! public boolean isPositive(int x) { if (x < 0) { return false; } else { return true; } %> </body> </html>
68
Java DataBase Connectivity (JDBC)
واسطی بین برنامه جاوا و پایگاه داده SQL یک برنامه جاوا از طریق JDBC یک SQL statement را به پایگاه داده ارسال می کند و نتیجه را دریافت می نماید. هر driver پایگاه داده باید کلاس Driver جاوا را پیاده سازی کند.
69
ساختار معماری JDBC
70
آمادگی برای کار با JDBC نصب پایگاه داده
دریافت driver مربوط به پایگاه داده نصب شده افزودن مسیر ذخیره بسته(jar file) پایگاه داده در clathpath
71
اتصال به پایگاه داده Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
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
72
کار با پایگاه داده int executeUpdate(String query)
ResultSet executeQuery(String query) boolean execute(String query)
73
دریافت نتایج از طریق ReaultSet
Array getArray(String colName) ; Date getDate(String columnName); int getRow(); boolean relative(int rows);
75
منابع 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” 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
76
پیوست ها
77
زبان های مبتنی بر کلاس و مبتنی بر شی
78
زبان های مبتنی بر کلاس و مبتنی بر شی(ادامه)
79
زبان های مبتنی بر کلاس و مبتنی بر شی(ادامه)
80
رخدادها در JS
81
رخدادها در JS(ادامه)
82
رخدادها در JS(ادامه)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.