İçerikler :

Bir Web Projesinde Herhangi Bir Hata Oluştuğu.. Bir Web Sitesine Özel Font Desteği Eklemek Eclipse ile Maven Projesi İle Java Web Projes.. Java'da Basit Bir JSP Örneği Java Server Faces - JSF JSP (Java Server Pages) JSP Sözdizimi Önder Teker - Web Servisleri, SOA - REST - SO.. Servlet Web Programlamın Temel Kavramları Web Projelerinde Resim,JS,CSS dosyaları için .. Web Projesinde Query String'lerle Birlikte Ta.. Web Sitesine Gelen Client'ın Mobil Cihaz Olup.. Web Uygulaması - Web Application

Bu Sayfayı Paylaş:

Kavram

Web Uygulaması - Web Application

Tanım: Java'da web'den gelen isteklere cevap veren , çoğunlukla bir web adresi olan (örneğin www.fibiler.com gibi) uygulama. Bir web uygulaması, html, css, javascript, resim, video gibi static içerikler ile , Servlet, JSP, JSF vb.. gibi dinamik özellikler kazandıran teknolojilerden oluşmaktadır

Kavram

Servlet

Tanım: Bir application server tarafından çalıştırılan program modülü. Servlet'ler java'da internet ve web programlama için kullanılan temel bileşendir.

Kavram

JSP (Java Server Pages)

Tanım: Bir application server tarafından çalıştırılan, HTML içerisine gömülen Java kodlarından oluşan sayfalar. Java'da Web projesi yapmak için kullanılmaktadır.

Kavram

Java Server Faces - JSF

Tanım: Java'da web projeleri için kullanılan, bileşen tabanlı , olay yönelimli (event driven) ve MVC modeline uygun geliştirilen framework

Örnek

Java'da Basit Bir JSP Örneği

Aşağıda basit bir JSP örneği gözükmektedir : 

<html>
<body>
<%
int i=10;
%>
i : <%=i%>	
</body>
</html>

<% ile %> arasına Java kodları girilmektedir. Örnekte i sayısına 10 atanmakta ve ardırdan i değeri sayfa üzerinde gösterilmektedir. 

 


Örnek

Web Projesinde Query String'lerle Birlikte Tam URL'i Veren Fonksiyon Örneği

Aşağıdaki fonksiyon bir java web projesinde , bir url'i query string'lerle (query parametreleri) birlikte vermektedir : 

public static String getFullURL(HttpServletRequest request) {
    StringBuffer requestURL = request.getRequestURL();
    String queryString = request.getQueryString();
    if (queryString == null) {
        return requestURL.toString();
    } else {
        return requestURL.append('?').append(queryString).toString();
    }
}

getRequestURL isteği yapılan sayfanın url'ni parametreler (?'dan sonra girilen) olmadan verir. getQueryString ile ?'dan sonraki string alınır ve birleştirilir


İpucu

Web Projelerinde Resim,JS,CSS dosyaları için Cache Kullanılması

Web projelerinde resim, js , css dosyaları gibi browser'ın bulunduğu makineye indirilen dosyalar için cache değerini artırabilirsiniz. Bir kullanıcı aynı siteye ikince kez girdiğinde browser resim, js ve css dosylarını server'dan indirmeyecek cache'ten gösterecektir. Bu şekilde web sitesinizin performansı artacaktır.
Tüm css, resim ve js dosyalarını web projesi içinde /Client şeklinde bir path'te tutabilirsiniz. Bu dosyaların cache'lenmesi için aşağıdaki gibi bir filter yaratılabilirsiniz. Bu filter'ın geçerli olduğu tüm dosyalar için 1 hafta (604800 sn) cache kullanılır.
package com.xxx;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ClientResourceFilter implements Filter {
        public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException, ServletException {
                
                if (!(request instanceof HttpServletRequest)) {
                        chain.doFilter(request, response);
                        return;
                }
                
                HttpServletResponse resp=(HttpServletResponse)response;
                resp.setHeader("Cache-Control", "max-age=604800");
        
                chain.doFilter(request, response);
        }
        public void init(FilterConfig fConfig) throws ServletException {}
        public void destroy() {}
}
Yukarıdaki filter web.xml'e aşağıdaki gibi eklenir :
<filter>
      <filter-name>ClientResourceFilter</filter-name>
      -class>com.xxx.ClientResourceFilter</filter-class>
</filter>
filter-mapping ise aşağıdaki gibi tanımlanır.
<filter-mapping>
      <filter-name>ClientResourceFilter</filter-name>
      <url-pattern>/Client/*</url-pattern>
</filter-mapping>

İpucu

Web Sitesine Gelen Client'ın Mobil Cihaz Olup Olmadığını Anlayabilirsiniz

Bir web sitesine istek yapan client'ın mobil cihaz mı değil mi olduğunu aşağıdaki fonksiyonu kullanarak anlayabilirsiniz : 

public boolean isMobile(HttpServletRequest request) throws Exception {
        
        String user_agent = request.getHeader("user-agent");
        String accept = request.getHeader("accept");
        String x_wap_profile = request.getHeader("x-wap-profile");
        String profile = request.getHeader("profile");
        String opera = request.getHeader("X-OperaMini-Phone");
        String ua_pixels = request.getHeader("ua-pixels");
        
        if (user_agent != null) {
            
            if (user_agent.contains("windows") &&! user_agent.contains("windows ce")){
                return false;
            }
            
            Pattern pattern = Pattern.compile("up.browser|up.link|windows ce|iphone|
iemobile|mini|mmp|symbian|midp|wap|phone|pocket|mobile|pda|psp|android|nokia|
blackberry|rim|opera mini|opera mobi|windows ce|windows phone|netfront|palm-
|palm os|pre|palmsource|avantogo|webos|hiptop|iris|kddi|kindle|lg-|lge|mot-|motorola|
nintendo ds|nitro|playstation portable|samsung|sanyo|sprint|sonyericsson|
alcatel|audiovox|bird|coral|cricket|docomo|edl|huawei|htc|gt-|lava|ct|lg|lynx|mobile|
lenovo|maui|micromax|mot|myphone|nec|nexian|nook|pantech|pg|polaris|ppc|sch
|sec|spice|tianyu|ustarcom|utstarcom|" +
                        "videocon|vodafone|winwap|zte", Pattern.CASE_INSENSITIVE);
            
            Matcher matcher = pattern.matcher(user_agent);
           
            if (matcher.find()){
                return true;
            }
            
            String[] ua = {"acs-","alav","alca","amoi","audi","aste","avan",
"benq","bird","blac","blaz", "brew","cell","cldc","cmd-","dang","doco","eric","hipt","inno",
"ipaq","java","jigs", "kddi","keji","leno","lg-c","lg-d","lg-g","lge-","maui","maxo",
"midp","mits","mmef", "mobi","mot-","moto","mwbp","nec-","newt","noki","opwv",
"palm","pana","pant","pdxg", "phil","play","pluc","port","prox","qtek","qwap",
"sage","sams","sany","sch-","sec-","send","seri","sgh-","shar","sie-","siem",
"smal","smar","sony","sph-","symb","t-mo", "teli","tim-","tosh","tsm-","upg1","upsi",
"vk-v","voda","w3c ","wap-","wapa","wapi", "wapp","wapr","webc",
"winw","winw","xda","xda-"};
            
            for(int i = 0; i < ua.length; i++ ) {
                if (ua[i] == user_agent.substring(0,3)) {
                        return true;
                }
            }

        }
        
        if (accept != null) {
            if (accept.contains("text/vnd.wap.wml") || 
			accept.contains("application/vnd.wap.xhtml+xml")) {
                return true;
            }
        }
        
        if (x_wap_profile != null || profile != null || opera != null || ua_pixels != null) {
            return true;
        }
        
        return false;
    }

Not : http://wiki.drupalschool.net/index.php/Use_Java_to_Detect_Mobile_Devices  kaynağından yararlanılmıştır.


İpucu

Bir Web Projesinde Herhangi Bir Hata Oluştuğunda Bir Servlete veya Sayfaya Yönlendirebilirsiniz

Bir hata oluştuğunda (bir exception veya 404, 500 durumu gönderen bir hata) bir sayfaya veya bir servlet'e yönlendirilmesini sağlayabiliriz. Örneğin web.xml dosyasına aşağıdaki gibi bir bölüm eklenebilir : 


	java.lang.Throwable 
	/hata.jsf 
	  
	404
	/404.jsf
 

Yukarıdaki eklendğinde herhangi bir Exception olutuğundan hata.jsf,  404 hatası (sayfa bulunamadıysa) 404.jsf sayfası kullanıcıya gösterilir

 


İpucu

Bir Web Sitesine Özel Font Desteği Eklemek

Client'ın pc veya telefonunda olmayan fontları web sitesinizde kullanabilirsiniz. Örneğin XFont adında bir font eklemek için aşağıdaki gibi bir css kullanabilirsiniz :
@font-face {
    font-family: "XFont";
    src: url('fonts/XFontBol.ttf');
    src: url('fonts/XFontBolIta.ttf');
    src: url('fonts/XFontDem.ttf');
    src: url('fonts/XFontDemIta.ttf');
    src: url('fonts/XFontMed.ttf');
    src: url('fonts/XFontMedIta.ttf');
    src: url('fonts/XFontReg.ttf');
}
ttf dosyaları fonts klasörü içinde olduğu varsayıyoruz. Klasör yapısı aşağıdaki gibidir :
index.html (style'ın bulunduğu sayfa)
fonts/XFontBol.ttf
fonts/XFontBolIta.ttf
...
...

Yukarıdaki gibi tanımlama yaptıktan sonra XFont adındaki fontu Arial, Times gibi artık kullanabiliriz

Materyal

JSP Sözdizimi

Bu videoda JSP temel söz dizimi anlatılmaktadır
Bu video 4 DVD'lik Java Göstermeli Öğretim Kümesi görüntülü eğitim setindeki videoların demosudur

Materyal

Web Programlamın Temel Kavramları

Bu videoda Javada Web programlanın temel kavramları anlatılmaktadır. Servlet, JSP, JSF, Tag Library gibi konulardan bahsedilmektedir
Bu video 4 DVD'lik Java Göstermeli Öğretim Kümesi görüntülü eğitim setindeki videoların demosudur

İpucu

Eclipse ile Maven Projesi İle Java Web Projesi Yaratılması

Eclipse ile bir Web proje yaratılması için Dynamic Web Project kullanılabilir. Ancak bu Eclipse'e özel özellikler de içerir. bunun yerine bir Maven Project ile Web projesi yaratabilirsiniz. Bunun için yeni proje yaratırken Maven Project seçilir. Prototip (archetype) olarak maven-archetype-webapp seçilir Genel olarak JDK 7'ye göre ayarlar gelir. eğer örneğin java 8 kullanıyorsanız değiştirmek gerekiyor. Hem pom.xml
hem de projenin build ayarlarından hepsini (Java Build Path, Project Facets, Java Compiler vb..) değiştirmeniz gerekir.
<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<maven.compiler.source>1.7</maven.compiler.source>
	<maven.compiler.target>1.7</maven.compiler.target>
</properties>
Bir Java web projesi haline getirmek için
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>3.1.0</version>
	<scope>provided</scope>
</dependency>
bağımlılığı eklenir.
src / main / webapp altında varsayılan olarak bir jsp gelecektir. Bu projeyi Tomcat, Jetty gibi bir ortamda .

Materyal

Önder Teker - Web Servisleri, SOA - REST - SOAP Nedir ?

Web Service nedir ? SOA , REST ve JAX-RS Nedir ? SOAP ve JAX-WS nedir ? EJB, JTA , JMS nedir ?



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir