۱۹-اردیبهشت-۱۳۸۵, ۰۷:۱۸:۱۹
نظر به این که بخش عظیمی از تکنولوژی های سرور ساید امروزی (سمت سرور) منتهی به جاوا میشود (جاوا نه جاوا اسکریپت اینا به هم ربطی ندارن) مجال را مناسب یافتیم که آموزش های کوتاه و سریع به زبان ساده شروع به اموزش این تکنولوژی ها کنیم . مباحث رو بدین ترتیب مرور خواهیم کرد :
اول از همه بریم سراغ تکنولوژی پر سرو صدای دیروز (Servlet) :
زمانی که برنامه نویسی تحت وب به تازگی شروع شده بود و تکنولوژی مد روز دنیا CGI بود به تازگی جاوا پا به عرصه ی وجود گذداشته بود و با توجه به این که کتاخانه زمان اجرای جاوا (Run Time) در حال گسترش هر چه بیشتر بود یک بخش جدید به این کتابخانه اضافه شد که در جهت گسترش پروتکل Http ایجاد شده بود . این کتابخانه در حال حاضر به آدرس زیر یافت میشود :
javax.servlet
ارکان این تکنولوژی به شرح زیر است :
درخواست های Http (که در کلاسی به نام javax.servlet.http.HttpServletRequest) یافت میشود. در این کلاس داده ها از مرور گر وب فرد به سمت Servlet ارسال شده به همراه تمامی ویژگی های مرورگر از جمله سیستم عامل و نوع مرور گر و آدرس دور دست (ip) و ... این شی مشابه شی HttpRequest در دات نت عمل میکند این کلاس با اینکه شباهت بسیار بالایی نسبت به کلاس مذکور در دات نت دارد اما معماری و متد ها و فیلد ها موجود به آن ممکنه هیچ شبیه به کلاس دات نتی شاشره نباشد . در طول کار با امکانات این کلاس از قبیل دریافت پارامتر ها و .... ملیون ها بار استفاده خواهید کرد.
پاسخ های Http (که در کلاسی با نام javax.servlet.http.HttpServletResponse) ذخیره میشود : این کلاس نیز عملکرد مشابه به کلاس HttpResponse در دات نت داشته (البته این تکنولوژی سال ها قبل از دات نت بوده پس بهتره بگیم این کلاس دات نت بسیار مشابه به کلاس سرولت بوده !!!) یک پاسخ http شامل اطلاعات درباره سرور و تاریخ انقضا پاسخ و داده فرمت شده میباشد که روی مرور گر میفرستد.
Cookie : یک کلاس که داده های کوکی را روی مرور گر کاربر ذخیر میکند بازیابی میکنه و مدیریت میکنه که توسط یک آرایه از این کلاس که در شی درخواست http وجود دارد توصیف میشود . {همه برنامه نویسان سرور ساید کوکی و قابلیت هاشو میشناسد دیگه بیشتر از این نمی گم پس}
جلسات کاربری :(که امروز به نام Session در همه تکنولوژی ها سرور ساید موجوده) در این بلوک میتوانید یک سری داده زوج {نام-مقدار} را روی بلوکی از حافظه سرور ذخیره کنید. این شی را میتوانید از متد getSession شی HttpServletRequest دریافت کنید .
Http Servlet : اصلی ترین بخش که در آن پردازش و خروجی ثبت میشود ، میباشد که در آدرس javax.servlet.http.HttpServlet یافت میشود. برای ساخت یک سرولت شما باید یک کلاس ساده بسازید و به شکل زیر آن را از کلاس HttpServlet مشتق کنید. در این کلاس دو متد doPost و doGet وجود دارد که خروجی فرو م و پردازش فرم در آن انجام میگیرد
این دو متد در صورتی که فرمی که شما طراحی میکنید با متد پست به سرور ارسال شود doPost را صدا میزند و در صورتی که با متد گت به سرور ارسال شود متد doGet را صدا میزند. پارامتر ها نیز کاملا مشخص هستند. حالی بگذارید یه Hello World ساده با این سیستم بنویسیم تا لذت کار را ببریم :
اما شاید این سوال براتون پیش بیاد خوب اب چه آدرسی در هاست صفحه صدا زده میشود ؟؟؟ این سیستم دارای یک فایل کانفیگ با فرمت اکس ام ال هست که پیکره بندی وب در آن انجام میگیرد (مث وب کانفیگ در دات نت) به نام web.xml . حالا شما داده درون وب اکس ام ال رو به صورت زیر لحاظ کنید :
حالا شما برای صدا ازدن روی هاست میتونید صفحه HlloJava.irv رو تو آدرس مرورگر بنویسید و نتیجه رو ببینید. این کانفیگ فایل قادره مپ سرولت شما رو با هر نوع فرمتی که دوس داشتید ست کنه. حتی aspx ,pl , cfml , php و ...
خب برای اولین جلسه فک کنم بس باشه نظر بدین ادامه میدم.
راسی اگه دلسرد شدین که این دیگه خیلی مسخره و ابتدایی نترسید این یک بیسه . شما در جلو تر با چیزهای مختلفی از جمله jsf , java Bean , Jsp , Taglib آشنا میشید که هیچجا پیداش نمیکنید. پس یکم دندون رو جیگر بذارید.
- Servlet
- Jsp(همراه با آموزش دانه های کاتربری جاوا)
- Jsf
- JDBC(رابط اتطصال جاوا به دیتا بیس)
اول از همه بریم سراغ تکنولوژی پر سرو صدای دیروز (Servlet) :
زمانی که برنامه نویسی تحت وب به تازگی شروع شده بود و تکنولوژی مد روز دنیا CGI بود به تازگی جاوا پا به عرصه ی وجود گذداشته بود و با توجه به این که کتاخانه زمان اجرای جاوا (Run Time) در حال گسترش هر چه بیشتر بود یک بخش جدید به این کتابخانه اضافه شد که در جهت گسترش پروتکل Http ایجاد شده بود . این کتابخانه در حال حاضر به آدرس زیر یافت میشود :
javax.servlet
ارکان این تکنولوژی به شرح زیر است :
درخواست های Http (که در کلاسی به نام javax.servlet.http.HttpServletRequest) یافت میشود. در این کلاس داده ها از مرور گر وب فرد به سمت Servlet ارسال شده به همراه تمامی ویژگی های مرورگر از جمله سیستم عامل و نوع مرور گر و آدرس دور دست (ip) و ... این شی مشابه شی HttpRequest در دات نت عمل میکند این کلاس با اینکه شباهت بسیار بالایی نسبت به کلاس مذکور در دات نت دارد اما معماری و متد ها و فیلد ها موجود به آن ممکنه هیچ شبیه به کلاس دات نتی شاشره نباشد . در طول کار با امکانات این کلاس از قبیل دریافت پارامتر ها و .... ملیون ها بار استفاده خواهید کرد.
پاسخ های Http (که در کلاسی با نام javax.servlet.http.HttpServletResponse) ذخیره میشود : این کلاس نیز عملکرد مشابه به کلاس HttpResponse در دات نت داشته (البته این تکنولوژی سال ها قبل از دات نت بوده پس بهتره بگیم این کلاس دات نت بسیار مشابه به کلاس سرولت بوده !!!) یک پاسخ http شامل اطلاعات درباره سرور و تاریخ انقضا پاسخ و داده فرمت شده میباشد که روی مرور گر میفرستد.
Cookie : یک کلاس که داده های کوکی را روی مرور گر کاربر ذخیر میکند بازیابی میکنه و مدیریت میکنه که توسط یک آرایه از این کلاس که در شی درخواست http وجود دارد توصیف میشود . {همه برنامه نویسان سرور ساید کوکی و قابلیت هاشو میشناسد دیگه بیشتر از این نمی گم پس}
جلسات کاربری :(که امروز به نام Session در همه تکنولوژی ها سرور ساید موجوده) در این بلوک میتوانید یک سری داده زوج {نام-مقدار} را روی بلوکی از حافظه سرور ذخیره کنید. این شی را میتوانید از متد getSession شی HttpServletRequest دریافت کنید .
Http Servlet : اصلی ترین بخش که در آن پردازش و خروجی ثبت میشود ، میباشد که در آدرس javax.servlet.http.HttpServlet یافت میشود. برای ساخت یک سرولت شما باید یک کلاس ساده بسازید و به شکل زیر آن را از کلاس HttpServlet مشتق کنید. در این کلاس دو متد doPost و doGet وجود دارد که خروجی فرو م و پردازش فرم در آن انجام میگیرد
کد:
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
*
* @author Saeed70
* @version
*/
public class Cookies extends HttpServlet {
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
/**
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
کد:
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
*
* @author Saeed70
* @version
*/
public class Cookies extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet Cookies</title>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
out.println("</head>");
out.println("<body>");
out.println("<form method='POST'>");
out.println("<div align='center'>");
for(int i=0;i!=8;i++)
{
out.println("<font size=\""+String.valueOf(i)+"\">Welcome To Java Web Base"+"</font>"+"<br />");
}
out.println("</form>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
کد:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
<servlet-name>Cookies</servlet-name>
<jsp-file>/Hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>Cookies</servlet-name>
<url-pattern>/HlloJava.irv</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
خب برای اولین جلسه فک کنم بس باشه نظر بدین ادامه میدم.
راسی اگه دلسرد شدین که این دیگه خیلی مسخره و ابتدایی نترسید این یک بیسه . شما در جلو تر با چیزهای مختلفی از جمله jsf , java Bean , Jsp , Taglib آشنا میشید که هیچجا پیداش نمیکنید. پس یکم دندون رو جیگر بذارید.