الثلاثاء، 13 سبتمبر 2016

تطبيق Captcha بـ ، Applying Captcha in ADF

تطبيق Captcha بـ ADF 

  Applying Captcha in ADF



لتنفيذ الـ captcha  نحتاج إلى تحميلsimplecaptcha-1.2.1.jar  وإضافتها إلى المشروع 
الموضوع بسيط فقط لنتابع الخطوات:
1-        إنشاء تطبيق (Application) (fusion middleware web application).
2-        إنشاء صفحة معmanage bean  بالطريقة المعتاد عليها
3-        الآن نقوم بإضافة المكتبة simplecaptcha-1.2.1.jar إلى المشروع من خلال right click  على إسم المشروع بعدها Project Properties بعدها نختار Labraries and Classpath وبالضغط على ADD JAR/Labraries ويتم إضافة ملف الـ simplecaptcha-1.2.1.jar  كما في الصورة أدناه :


لتحميل ملف  simplecaptcha-1.2.1.jar إضغط هنا

4-     الآن قم بإضافة الكود التالي على ملف   web.xmlوكما موضح في الصورة في أدناه
<servlet>
    <servlet-name>CaptchaServlet</servlet-name>
    <servlet-class>nl.captcha.servlet.SimpleCaptchaServlet</servlet-class>
    <init-param>
            <param-name>width</param-name>
            <param-value>250</param-value>
    </init-param>
    <init-param>
       <param-name>height</param-name>
       <param-value>75</param-value>
    </init-param>
  </servlet>
<servlet-mapping>
    <servlet-name>CaptchaServlet</servlet-name>
    <url-pattern>/captchaservlet</url-pattern>
  </servlet-mapping>

(الإنتباه والمراعاة مكان الإضافة على ملف web.xml )



  5-        نعمل save لحفظ التعديلات 

6-        نكون تصميم الصفحة كما في الشكل التالي: 


code  source الصفحة يكون التالي :

<af:panelFormLayout id="pfl1">
<f:facet name="footer"/>
<af:outputText value="Captcha Ascension" inlineStyle="font-size:22pt;"/>
<af:image source="/captchaservlet" id="i1"
           inlineStyle="width:239px; height:60.0px;"/>          
<af:panelLabelAndMessage label="Enter the Text : " id="plam1">
<af:panelGroupLayout id="pgl1" layout="horizontal" halign="left">
<af:inputText id="it1" value="#{requestScope.enterTxt}"/>
<af:commandButton text="Done" id="cb1"                            actionListener="#{backingBeanScope.captchaAscension.verifyAnswer}"
partialSubmit="true" immediate="false" icon="/img/okay.png"/>
<af:spacer width="11" height="17" id="s1"                                  binding="#{backingBeanScope.captchaAscension.s1}"/>
  <af:commandButton text="Refresh" id="cb2" partialSubmit="false"       icon="/img/refresh.png"/>
    </af:panelGroupLayout>
            <af:message id="m1" for="it1"/>
          </af:panelLabelAndMessage>
        </af:panelFormLayout>


7-        الآن لم يتبقى سوى كتابة الـ (code) التابع للزر (Done) ليتم التحقق من الرمز المكتوب 
    مع صورة الـcaptcha  في manage bean ، قم بنسخ الكود التالي :


 public void verifyAnswer(ActionEvent actionEvent)
{
   FacesContext fctx = FacesContext.getCurrentInstance();
   ExternalContext ectx = fctx.getExternalContext();
   HttpServletRequest request = (HttpServletRequest)ectx.getRequest();
   Captcha captcha = (Captcha)ectx.getSessionMap().get(Captcha.NAME);
      try
       {
        request.setCharacterEncoding("UTF-8");
       }
          catch (UnsupportedEncodingException e)
           {
             System.out.println("UTF not supported !");
           }
            String answer = (String)ectx.getRequestMap().get("enterTxt");
            if (answer != null && captcha.isCorrect(answer))
            {
             message("You are correct boss.");
            }
              else
               {
                message("You are wrong.Please try again.");
                UIComponent panelLabelAndMessage =
               ((UIComponent)actionEvent.getSource()).getParent().getParent();
                UIComponent panelFormlayout = panelLabelAndMessage.getParent();
        AdfFacesContext.getCurrentInstance().addPartialTarget(panelFormlayout);
              }
       }

        private void message(String str)
        {
          FacesContext fctx = FacesContext.getCurrentInstance();
          fctx.addMessage("it1", new FacesMessage(str));
        }

الآن إن شاء الله نقوم بعمل حفظ للمشروع ((save  وبعدها run  لنرى النتيجة كما في الصورة المرفقة 



إن شاء الله تستفيدوا من المشاركة 
لتحميل التطبيق إضغط هنا 




ليست هناك تعليقات:

إرسال تعليق

Connection Psotgresql Database in Jdeveloper IDE

السلام عليكم ورحمة الله وبركاته موضوع اليوم هو كيفية عمل Connection  لقاعدة البيانات  Psotgresql داخل  بيئة العمل  Jdeveloper بداي...