« May 2007 | صÙ?ØÙ‡ اصلی | July 2007 »
Static & Dynamic includeJune 26, 2007 06:10 PM
براي ص�?ØØ§Øª jsp كه زياد تغيير نمي كنند، است�?اده از static include توصيه مي شود. در صورتيكه اگر تغييرات روي jsp زياد است. روش دايناميك مناسب تر است. ضمنا به دليل اينكه JVM در ØØ¬Ù… �?ايل ها Ùˆ ص�?ØØ§Øª jsp كه با آنها كار مي كند Ù…ØØ¯ÙˆØ¯ÙŠØª دارد (ØØ¯Ø§ÙƒØ«Ø± 64 KB)ØŒ گاهي ناچاريم كه با است�?اده از dynamic include چندين servlet ايجاد كنيم.
در ادامه مطالب وبلاگ مثال هايي از JSP و Servlet خواهيم ديد.
mahyar_ev | 06:10 PM | Comment(s)(0)
JSPدو نوع دستور در ص�?ØØ§Øª JSP وجود دارند :
. بخش static مثل HTML و CSS كه عينا در پاسخ توليد شده توسط JSP Engine كپي مي شوند.
. بخش dynamic كه توسط JSP Engine ترجمه و بعد، كپي مي شوند. اجزاء دايناميك، خود سه دسته اند:
1- Scripting Elements: امكان درج كدهاي جاوا را بصورت embedded �?راهم مي كند و سه نوع است:
مثال <%! Calendar c = Calendar.getInstance(); %>
Expression:
مثال <%= new Date()>
Scriptlet:
مثال
<%
//Java codes
String userName = null;
userName = request.getParameter("username");
%>
مثال
<jsp:include page="scripts/login.jsp" />
مثال
<%@ page import="java.util.Date" %>
<%@ include file="myJSP" %>
<%@ taglib uri="tagliburi" prefix="myTag"%>
mahyar_ev | 05:56 PM | Comment(s)(0)
Servlet APIJune 24, 2007 02:11 PM
Servlet به همراه JSPØŒ راه ØÙ„ جاوا براي ايجاد Ù…ØØªÙˆØ§ÙŠ Ù¾ÙˆÙŠØ§ يا dynamic در وب است.
ØØ¯Ø§Ù‚Ù„ يكي از متدهاي زير از HttpServlet بايد در SubClass هاي آن Override شود:
doGet : براي درخواست هاي HTTP GET
doPost : براي درخواست هاي HTTP POST
doPut : براي درخواست هاي HTTP PUT
doDelete : براي درخواست هاي HTTP DELETE
Init و Destroy : براي مديريت منابع مرتبط با servlet
getServletInfo : براي دستيابي به اطلاعات servlet
مثال:
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
}
}
request.getRequestURI()
request.getProtocol()
request.getRemoteAddr()
request.getParameter("ParamName"); // براي گر�?تن مقدار پارامتر ارسال شده درخواست
mahyar_ev | 02:11 PM | Comment(s)(0)
MVCJune 23, 2007 10:42 AM
Design Pattern چيست و چرا از Design Pattern در جاوا است�?اده مي كنيم؟
Design Pattern ها الگو ها Ùˆ روش هاي اثبات شده اي هستند كه هنگام طراØÙŠ Ù…Ø¹Ù…Ø§Ø±ÙŠ Application بايد مورد توجه قرار گيرند. Design Patternها نشانگر تجربه Ùˆ دانش Ø·Ø±Ø§ØØ§Ù†ÙŠ Ù‡Ø³ØªÙ†Ø¯ كه از آن ها با مو�?قيت است�?اده كرده اند. است�?اده از اين Design Pattern ها به شما امكان است�?اده از تجربيات ايشان را در جهت مقاصدتان مي دهد. ضمنا است�?اده از آنها ØŒ زبان Ùˆ قالب مشتركي را بين Ø·Ø±Ø§ØØ§Ù† نرم ا�?زار �?راهم مي سازد.
Design Pattern هاي مختل�?ي وجود دارد كه يكي از مهمترين آنها MVC است.
MVC چيست؟
كاربران ممكن است از طريق Browser با �?رمت HTML يا Wireless Device با �?رمت WML يا Web Service با �?رمت XML و غيره به سرور، درخواست ب�?رستند. معماري MVC براي پاسخگويي به اين نياز ، يعني �?راهم آوردن امكان سرويس دهي به انواع كاربران با interface هاي گوناگون ، پديد آمده است.
MVC يكي از معماري هاي مهم در JavaEE است و به Model-View-Controller architecture اشاره دارد. اين معماري عمليات نمايش و مديريت داده ها را به سه قسمت تقسيم مي نمايد.
Model :وظي�?ه ارتباط با منابع اطلاعاتي (Database ها و غيره) را به عهده دارد. همچنين Business Logic در اين قسمت پياده سازي مي شود.
View : خروجي را با �?رمت مناسب توليد مي كند.
Controller : بعنوان واسط و هماهنگ كننده Model و View عمل مي كند.
mahyar_ev | 10:42 AM | Comment(s)(0)
ساختار JavaEEJune 16, 2007 03:03 PM
Web Server وظي�?Ù‡ دريا�?ت درخواست Ùˆ پاسخگويي به درخواست client را به عهده دارد. Web Server درصورت نياز Ùˆ جهت تهيه پاسخ dynamic ØŒ درخواست را به برنامه هاي ديگري از جمله Servlet Ùˆ JSP كه در Application Server قرار دارند، ارسال مي نمايد. Web Server الزما بايد از پروتوكل HTTP ØÙ…ايت نمايد.
اما در Application ServerØŒ Ù†ØÙˆÙ‡ توليد Ù…ØØªÙˆØ§ÙŠ Dynamic Ùˆ Business Logic پياده مي شود. همچنين Web Container, Servlet container Ùˆ EJB container در Application Server قرار مي گيرند.
جزييات ساختار و لايه هاي �?يزيكي JavaEE را در تصوير زير مي توانيد مشاهده نماييد:
mahyar_ev | 03:03 PM | Comment(s)(0)
JavaEEJune 11, 2007 12:14 PM
1- Enterprise JavaBeans Components
2-Servlet API
3- JSP
4- XML
لايه هاي Ù?يزيكي JavaEE يا JavaEE Physical Tiers شامل
1- لايه كاربر - Client Tier
2- لايه مياني - Application Tier يا Middle Tier
3- لايه داده ها – Data (EIS) Tier
mahyar_ev | 12:14 PM | Comment(s)(0)
گستردگي جاوادر ادامه Ø¨ØØ«ØŒ JAVA EE به عنوان يكي از مهمترين Ùˆ پركاربردترين موضوعات جاوا معرÙ?ÙŠ مي شود Ùˆ استانداردها Ùˆ ابزار مورد استÙ?اده آن تا ØØ¯ ممكن مورد بررسي قرار مي گيرند.
mahyar_ev | 11:35 AM | Comment(s)(0)
اجراي يك برنامه سادهJune 6, 2007 11:56 AM
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
سپس با استÙ?اده از دستور java از همان Ù?ولدر bin Ù…ÛŒ توان برنامه را اجرا نمود. نتیجه اجرای برنامه نمایش عبارت "!Hello World" روی صÙ?ØÙ‡ است.
تست برنامه های جاوا در IDE ها ساده تر است، زیرا خود آنها ابزار لازم را برای اجرا و تست در اختیار می گذارند. بدون آنکه لازم باشد درگیر جزئیات دستورات اجرایی جاوا شوید.
البته نباید Ù?راموش کرد Ú©Ù‡ بطور Ú©Ù„ÛŒ deploy کردن برنامه های جاوا در عمل کاری پیچیده است Ùˆ نیازمند دقت است.
برای کسب اطلاعات بیشتر بهترین منبع help جاوا است Ú©Ù‡ Ø§ØØªÙ…الا آن را در Ù?ولدر Doc موجود در Ù?ولدر اصلی برنامه جاوا خواهید یاÙ?ت.
mahyar_ev | 11:56 AM | Comment(s)(1)
Class LoadingJune 3, 2007 11:44 AM
تÙ?اوت Static Class Loading Ùˆ Dynamic Class Loading:
Static Class Loading با دستور new انجام مي شود
Dynamic Class Loading با دستور forName انجام مي شود
mahyar_ev | 11:44 AM | Comment(s)(0)
تÙ?اوت abstract class Ùˆ interfaceJune 2, 2007 10:43 AM
public abstract class Account{
public interface Account{
1-abstract class هم داراي متدهاي قابل اجرا است (امكان پياده سازي بدنه متد وجود دارد) Ùˆ هم متدهاي abstractØŒ Ø¯Ø±ØØ§Ù„يكه در interface امكان تعريÙ? بدنه متد وجود ندارد.
2-هر subclass تنها از يك abstract class مي تواند گرÙ?ته شود. اما يك كلاس مي تواند چندين interface را implement نمايد.
3-abstract class مي تواند شامل متغير، متد، construction Ùˆ انواع modifier هاي public,private, proected Ùˆ none باشد. در ØØ§Ù„يكه interface نمي تواند شامل موارد ذكر شده باشد.