CodeGym/Java Kursu/Modül 3/JSP: bir sunucu uygulamasını tanımlamanın bildirimsel yol...

JSP: bir sunucu uygulamasını tanımlamanın bildirimsel yolu

Mevcut

1.1 JSP'ye Giriş

Bir sunucu uygulaması yazmanın iki popüler yolu vardır: zorunlu ve bildirimsel . İlkini zaten ele aldık - bu aslında bir Servlet. İkincisi JSP (Java Sunucu Sayfaları) olarak adlandırılır ve şimdi onunla tanışacağız.

Servlet JSP örneği:

<html>
    <body>
        <% out.print(2*5); %>
    </body>
 </html>

Alıştığımız klasik Servlet'e pek benzemiyor değil mi? Bu doğru. JSP, Java kodu ekleri (yeşil renkle vurgulanmış) içeren bir HTML sayfasıdır .

Görüyorsunuz, bir servlet'te çok fazla Java kodunuz ve az HTML kodunuz varsa, klasik bir servlet kullanmakta daha rahatsınız demektir . Ancak, sunucu tarafından yalnızca birkaç satırın değiştirildiği büyük bir HTML sayfasına ihtiyacınız varsa ne olur?

Bu durumda, en basit şey bu HTML sayfasını oluşturmak ve bir şekilde Java kodunu sunucuda doğrudan içinde çalıştırmak olacaktır.

1.2 JSP'leri Derleme

Başka bir örneğe bakalım:

<html>
  <body>
    <%
        double num = Math.random();
        if (num > 0.95) {
     %>
         <h2>You are lucky, user!</h2><p>(<%= num %>)</p>
    <%
        }
    %>
  </body>
</html>

Rastgele bir sayı alıyoruz ve 0,95'ten büyükse "Şanslısın kullanıcı!" metnini yazdırıyoruz.

Java kodu burada mavi renkle vurgulanmıştır . Normal (vurgulanmamış) - Java kodunun ve HTML'nin nerede olduğunu anlamaya yardımcı olan HTML kodu ve kırmızı - hizmet etiketleri .

Garip bir şey fark ettin mi? Kapanış kaşlı ayracı "}"başka bir "code block". Böyle bir kod yazmanın doğru yolu nedir? Nasıl çalışıyor?

Cevap çok basit olacak :)

Web sunucusu bir JSP dosyası bulduktan sonra onu klasik bir sunucu uygulamasında derler. Yukarıdaki JSP sayfasına göre, bu Servlet oluşturulacaktır:

public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws Exception {
    PrintWriter out = response.getWriter();
    out.print("<html> ");
    out.print("<body>");
        double num = Math.random();
        if (num > 0.95) {
            out.print("<h2>You're lucky user! </h2><p>(" + num + ")</p>");
        }
    out.print("</body>");
    out.print("</html>");
    }
}

Web kapsayıcısı, HTML'nin metne dönüştüğü ve Java kodu eklerinin normal Java kodu haline geldiği servlet kodunu oluşturdu!

Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok