مفاهیم جاوا ارائه کننده:رضا پورنقی آذر 1384 بنام خدا

Slides:



Advertisements
Similar presentations
معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
Advertisements

فاکتورهای مهم در ایجاد یک مقاله علمی
Professor: Dr. Ahmad Abdollahzadeh Amirkabir University of Technology, Computer Engineering and Information Technology Department Intelligent Systems Laboratory.
طبقه بندی تعاریف سیستم های تصمیم یار
© 2005 Prentice Hall Inc. All rights reserved. o r g a n i z a t i o n a l b e h a v i o r e l e v e n t h e d i t i o n.
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
انواع Middleware و معرفی دو نمونه
1 Network Address Translation (NAT). 2 Private Network شبکه خصوصی شبکه ای است که بطور مستقیم به اینترنت متصل نیست در یک شبکه خصوصی آدرس های IP به دلخواه.
1 بنام خدا زبان برنامه نویسی C (21814( Lecture 14 Structures.
به نام خدا برنامه سازی سمت سرور (php)
تکنیک های پیشرفته در برنامه سازی وب ) اسلايد هفتم ) جوانمرد Website: به نام خدا.
مظفر بگ محمدی دانشگاه ایلام Generics. کدهای عمومی 2 یکی از اهداف OOP ایجاد قابلیت نوشتن برنامه های عمومی با قابلیت استفاده ی مجدد است. کدهای چندریخت تا.
Data Types Modifiers Base data type Size Sign signed int 2 B unsigned float 4 B short double 8 B long char 1 B.
به نام خدا فاطمه عباسی نژاد TCL
دوره آموزش جاوا اسکریپت
[c.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
مدیریت اطلاعات و داده های سازمان یافته
تمرین هفتم بسم الله الرحمن الرحیم درس یادگیری ماشین محمدعلی کیوان راد
معرفی پرتال سازمانی درسا مرکز فناوری اطلاعات و ارتباطات
ویژگی های DHCP جلوگیری از Conflict سرعت بخشیدن به کارها مدیریت متمرکز
فصل دوم: نگاهی کلی به سیستم عامل.
فصل اول: رسانه های ذخیره سازی
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
اسلایدهای فصل سوم کتاب سیلبرشاتز دانشکده مهندسی کامپیوتر دانشگاه شریف
آشنایی مقدماتی با نرم افزار Endnote X4
چهاردهمین اجلاس سراسری فناوری رسانه
ارث بری استفاده ی مجدد از کلاس توسط وراثت
استانداردهای تصاویر دیجیتال پزشکی با فرمت دایکام DICOM در سیستم PACS
ارائه شده: الهام قنبری فتحیه فقیه خراسانی گروه3 تابستان 85
آموزش مقدمات MATLAB سیگنال ها و سیستم ها دانشگاه صنعتی شریف پائیز 86
دانشگاه علوم پزشکی شهید بهشتی
نرم افزار رایانه بخش دوم کتاب توربان درس مهندسی فناوری اطلاعات فصل 2.
مظفر بگ محمدی دانشگاه ایلام
ارث بری استفاده ی مجدد از کلاس توسط وراثت
SSO Single Sign-on Systems
آشنایی با پایگاه داده mysql
آموزش کرک کردن نرم افزار ACTIVE HDL
SE Dept.2 تهیه کنندگان: ملیحه اسکندری نسیبه پوتی
آشنایی مقدماتی با نرم افزار Endnote X4
ارث بری استفاده ی مجدد از کلاس توسط وراثت
برنامه نویسی پیشرفته مقدمات.
جزوه درس طراحی سیستمهای شی گرا
آدرس : میدان هفت تیر – بن بست هوشیار – پلاک 5
ASP.NET فرناز شریعت.
به نام خدا فصل هفتم وراثت.
مهندسی فناوری اطلاعات ارائه دهنده دکتر سيد امين حسيني
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
راهنمای استفاده از ابزار Mailings در Ms Word
جلسه ششم حفاظت در سیستم عامل
معماری سرویس گرا (SOA).
آشنایی مقدماتی با نرم افزار Endnote X4
نام درس: طراحی و پیاده سازی زبانهای برنامه سازی
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
آشنایی مقدماتی با نرم افزار Endnote
کاربرد کامپیوتر در داروخانه
به نام خدا Koha برنامه.
پروتکلها و استانداردهای وب (فصل نهم)
سمینار SharePoint رانندگی در بزرگراه پرتال ها
فصل ششم مدارهای ترتیبی.
فرشاد آقابزرگی هوش تجاری
دکتر مظفر بگ محمدی دانشگاه ایلام
یادگیری الکترونیکی مبتنی بر دانش
مظفر بگ محمدی دانشگاه ایلام
سخت افزارهای امنیتی Hardware Security تهیه و ارایه : یونس جوان.
Uniprocessor Scheduling
به نام یکتای دانا فصل اول: متدها و قواعد.
فصل 8 –Process and Deployment
kbkjlj/m/lkiubljj'pl;
آشنایی با فرایند داده کاوی در نرم افزار R گروه داده کاوی دایکه داود دوروش تابستان 6139.
Presentation transcript:

مفاهیم جاوا ارائه کننده:رضا پورنقی آذر 1384 بنام خدا دانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر

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

Java Application, Applet, API Classes ماشین مجازی جاوا(JVM) Windows XP Solaris Mac OS Linux JVM برای Windows بار کننده کلاس مفسر جاوا برای Solaris برای برای Linux Java Application, Applet, API Classes کد قابل اجرا برای Windows

سلسله مراتب JApplet

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

مثال از بدنه Applet

تگ <applet> <BODY> ... <APPLET CODE=“Sample.class" WIDTH=150 HEIGHT=150> </APPLET> … </BODY> CODEBASE=“example/” CODEBASE = “http://ce.sharif.edu/~r_pournaghi” آدرس دهی نسبی آدرس دهی مطلق

تگ <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>

محدودیت های 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، تمامی اطلاعات یک شی با فرمت خاصی در فایل ذخیره می شود و با بازخوانی آن فایل شی دوباره ساخته می شود.)

Customization با بازنویسی(overriding) متدهای: paintValue(…) getCustomEditor() supportsCustomEditor() در کلاس PropertyManager property editor

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 سمت کاربر(client-side) سمت خادم(server-side) مورد استفاده: برای ساخت صفحات پویا(dynamic)

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

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

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

مقایسه JavaScript با Java JavaApplet کد تفسیر(interpret) می شود کد کامپایل شده و اجرا می شود مبتنی بر شیء(مفهوم کلاس وجود ندارد) مبتنی بر کلاس(اشیاء نمونه هایی از کلاس ها هستند) وراثت با استفاده از مفهوم نمونه سازی(prototype) وراثت از طریق سلسله مراتب کلاس ها صفت ها و متدها به صورت پویا به شیء اضافه می شود متدها و صفت ها نمی توانند به صورت پویا به کلاس ها و اشیاء افزوده شوند کد با تگ های HTML آمیخته هستند کلاس های Applet جدا از صفحات HTML می باشد نوع متغیرها اعلام نمی شوند نوع متغیرها باید اعلام شوند محدود در استفاده از منابع رایانه کاربر

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

صفت های(properties) شی objectName.propertyName مثال: myCar[make]="Ford” myCar.make="Ford” myCar[model]="Mustang” myCar.model="Mustang” myCar[year]=1969 myCar.year=1969

ایجاد شی جدید استفاده از 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)

افزودن صفت افزودن صفت به یک نمونه خاص: افزودن صفت به تمام نمونه- های هم نوع: car1.color = "black” car.prototype.color = null 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 ها <SCRIPT LANGUAGE = "javascript1.2"> … </SCRIPT> <SCRIPT SRC="common.js"> <HR WIDTH="&{barWidth};%" ALIGN="LEFT"> <H4>&{myTitle};</H4>

نحوه پاسخ گویی به یک رخداد در 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 توصیف صفت مقدار ACTION در تگ FORM را برمی گرداند action آرایه ای که تمامی المان های FROM را برمی گرداند elements مقدار ENCTYPE در تگ FORM را برمی گرداند encoding تعداد المان های موجود در FROM را برمی گرداند length مقدار METHOD در تگ FORM را برمی گرداند method مقدار NAME در تگ FORM را برمی گرداند name مقدار TARGET در تگ FORM را برمی گرداند target توصیف متد متدی که پاسخگوی وقوع رخداد خاصی است را صدا می کند handleEvent کلیک ماوس بر دکمه reset را شبیه سازی می کند reset کلیک ماوس بر دکمه submit را شبیه سازی می کند submit

مثال از کار با 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 Server Apache’s Web JServ Module Port 80 Server via JServ Web page applet image HTML controls client Port 80 JServ Module System Resources

متدهای 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 ندارد. نیاز کمتری به آشنایی با زبان جاوا دارد. Java <HTML> JSP + =

تگ های اصلی 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> </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

اتصال به پایگاه داده 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

کار با پایگاه داده 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(ادامه)