« 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 نمي تواند شامل موارد ذكر شده باشد.