ايران ويج

نسخه‌ی کامل: آموزش تکنولوژی های سرور ساید جاوا
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
نظر به این که بخش عظیمی از تکنولوژی های سرور ساید امروزی (سمت سرور) منتهی به جاوا میشود (جاوا نه جاوا اسکریپت اینا به هم ربطی ندارن) مجال را مناسب یافتیم که آموزش های کوتاه و سریع به زبان ساده شروع به اموزش این تکنولوژی ها کنیم . مباحث رو بدین ترتیب مرور خواهیم کرد :
  • 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 {
    
    }
    
    
}
این دو متد در صورتی که فرمی که شما طراحی میکنید با متد پست به سرور ارسال شود doPost را صدا میزند و در صورتی که با متد گت به سرور ارسال شود متد doGet را صدا میزند. پارامتر ها نیز کاملا مشخص هستند. حالی بگذارید یه Hello World ساده با این سیستم بنویسیم تا لذت کار را ببریم :

کد:
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();
    }
    
}
اما شاید این سوال براتون پیش بیاد خوب اب چه آدرسی در هاست صفحه صدا زده میشود ؟؟؟ این سیستم دارای یک فایل کانفیگ با فرمت اکس ام ال هست که پیکره بندی وب در آن انجام میگیرد (مث وب کانفیگ در دات نت) به نام web.xml . حالا شما داده درون وب اکس ام ال رو به صورت زیر لحاظ کنید :
کد:
<?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>
حالا شما برای صدا ازدن روی هاست میتونید صفحه HlloJava.irv رو تو آدرس مرورگر بنویسید و نتیجه رو ببینید. این کانفیگ فایل قادره مپ سرولت شما رو با هر نوع فرمتی که دوس داشتید ست کنه. حتی aspx ,pl , cfml , php و ...
خب برای اولین جلسه فک کنم بس باشه نظر بدین ادامه میدم.
راسی اگه دلسرد شدین که این دیگه خیلی مسخره و ابتدایی نترسید این یک بیسه . شما در جلو تر با چیزهای مختلفی از جمله jsf , java Bean , Jsp , Taglib آشنا میشید که هیچجا پیداش نمیکنید. پس یکم دندون رو جیگر بذارید.
میبینم که افراد سایت شدیدا رغبت به یاد گیری تکنولوژی روز دنیا دارن و علاقه خودشونم خوب نشون دادن !!! آقا ممنون با این وضع پیش بره صد در صد آموزش های مختلف دیگر هم شروع میشن !! چون نویسندگان وقتی میبینند این همه افراد نسبت به مقالات میل و رغبت نشون میدن صد در صد مقاله برای سایت خواهند نوشت .....
از آموزشتون ممنون
ولی من حتی نتونستم servlet روimport کنم errorمیده چی کار کنم؟
آقا وحيد بايد اولش روش راه اندازي سرويس جاوا رو ميگفتي آخه وقتي هنوز من توي راه اندازي سرويسش مشكل داشته باشم اين برنامه ها بكارم نمياد. آموزشهات خوبه اگه اينم بهش اضافه كني عالي ميشه.
بازم دست وحید درد نکنه !
والا برای راه اندازی سرویس جاوا اولش باید کیت توسعه جاوا (jdk) رو از سایت sun.com  دانلود کنید . در ضمن اگه بخواهید با ادیتوری مث نوت پد کار کنید هم روند کند تر میشه و هم مجبور به تهیه همه نیازمندی های جاوا میشید.
اگه از یهIDE مث NetBeans یا JavaBuilder استفاده کنید خودش ران تایم مخصوص کتابخانه ها رو نصب میکنه ولی در هر صورت میتونید اطلاعات بیشتر سرولت رو از http://java.sun.com/products/servlet/ بگیرید (اکثر نیاز مندی ها رو بریا دانلود داره.)
سرور مجانی و آپن سورس خوب هم TomCat به نظر مناسبه این سرور یکی از محصولات اپاچی هست . توس سایت آپاچی دات ارگ میتونید پیداش کنید و دانلود کنید.
نقل قول: آموزشتون ممنون
ولی من حتی نتونستم servlet روimport کنم errorمیده چی کار کنم؟
متن ارور اگه حاکی از یافت نشدن کتابخانه هست شما احیانا باید از کتابخانه j2se استفاده میکنید. در این صورت شما باید نسخه j2ee رو بذارید . البته متن ارور رو دقیق بگید شاید بتونم بهتر کمک کنم.
نقل قول: بازم دست وحید درد نکنه !
چاکریم !!! آقایی
راسی اینم یه سرولت ابتدایی هست که من با نت بنس نوشتم دقت داشته باشید که فرم پوشه های WEB-INF و META-INF رو بهم نزنید. اینا پوشه ها اساسی وب در جاواس که اکثرا توش فایل کانفیگ ها و ران تایم لایبراری ذخیره میشه .
امیدوارم خوشتون اومده باشه ، فردا این اموزشا رو بهتر ادامه میدیم .
در واقع سرولت سرويس دهنده جاوا توي وب هست مثل آپاچي كه به پي اچ پي سرويس ميده؟؟؟
نه نمیشه سرولت رو یه سرور جاوا فرض کرد سرولت خودش یه تکنولوژیه که برای اجرا نیاز به یه سرور داره. منتها تفاوت عمدش اینه که تو این یکی اچ تی ام ال میان کد نوشته میشه نه کد میان اچ تی ام ال (مدل CGI) . ببینید برای سرور ساید های جاوا وب سرور های زیادی از IBM و Oracle گرانقیمت گرفته تا Tomcat (http://jakarta.apache.org/) آپن سورس که محصول آپاچیه.
بازم میگم برای کار این تکنولوژی های سمت سرور جاوا رو با یه ide تجربه کنین خیلی بهتره . گذشته از کد نویسیش که با نوت پد هم ممکنه اما دیباگ کردن و نوشتن اکس ام ال فایل های بزرگ مث تگ لیب و .... اصولا با یه IDE مثل NetBeans یا Borland  JavaBuilder خیلی اسون تره چون این کارا هم توش خود کار انجام میشه .
اروری که به من میده اینه:
the imoprt javax.servlet cannot be resolved
من از کتابخانه j2eeهم استفاده کردم ولی باز هم همین ارور را داد
من از ادیتور eclipse استفاده میکنم و کاملا تازه کار
لطفا خیلی توضیح بدین
فک کنم فهمیدم مشکل کار از کجاست. این ادیتور قابلیت پشتیبانی از وب اپلیکیشن رو نداره و قادر نیست API های ران تایم مث Servlet API و jsp-APIو JSF و .... رو وارد کنه. این ادیتور بیشتر محدود به نوشتن اپلت ها و برنامه های SWING میشه. شما ترجیحا از یه ادیتور مثل NetBeans (قابل دانلود از سایت سان) یا جاوا کریتور(Sun Creator){قابل دانلود از سایت سان} یا JBuilder(قابل خرید از بازار)استفاده کنید ، کار خیلی آسون تر میشه!
سلام وحید خان ... واقعا از معلومات عالیی برخورداری تبریک می گم ...
امیدوارم بروبچه های اینجا قدر شما رو بدونن

مقاله رو خوندم ... تا انجامش ندم نمیتونم بهت بگم متوجه شدم یا نه ... راستش تا حالا تو نخ
java.swing
java.awt
java.sql
java.util
بودم.... که میدونم خیلی کمه ...
راستش من الان حدود 2 سالی هست که با جاوا آشنایی دارم ...
اما به طور جدی الان چند ماهه بهش گیر دادم...
راستش مطلبتون از نظر من برای اونهایی که تازه مقاله اولتون در مورد جاوا رو خوندن یه خورده که نه ... یه مقدار بسیار زیادی سنگینه ...

راستش من سوال زیاد که نه خیلی خیلی زیاد دارم ...
انشالله اگه مشکلی نباشه از محضرتون همینجا یا تو تاپیک هایی که ایجاد می کنم می پرسم...
صفحه‌ها: 1 2