Razvoj Web aplikacija Marko Miloevi Cilj Sticanje znanja
Razvoj Web aplikacija Marko Milošević
Cilj � Sticanje znanja o kreiranju poslovnih web aplikacija. � Kakva treba da bude web aplikacija? ◦ Jednostavna za održavanje; ◦ Proširiva; ◦ Konfigurabilna. � Zašto Java? � Da li samo Java?
Java web tehnologije � Java Servlet API � Java Server Pages (JSP) � Java Server Pages Standard Tag Library (JSTL) � Java Server Faces (JSF) � Java Message Service API � Java API for XML Processing � JDBC API � Java Persistance API �. . .
Obrada HTTP zahteva
Struktura web aplikacije
Web moduli � Web komponente i statički sadržaj predstavljaju web resurse. � Web modul je grupa resursa koja može da se isporuči (postavi na server) i koristi. � Uz resurse, web modul može da sadrži i ◦ Pomoćne serverske klase; ◦ Klijentske klase (aplete). � Web modul ima specifičnu strukturu ◦ Document root je direktorijum koji sadrži sve podatke web modula.
Struktura web modula
Rad sa web modulima � Pakovanje web modula – war fajl ◦ Apache Ant ◦ Eclipse ◦. . . � Postavljanje war fajla na server ◦ Ručno kopiranje ili deployment script – ovi. ◦ Postavljanje Context root – a. � Ažuriranje modula � Uklanjanje modula
Web serveri koji podržavaju servlete (Servlet Containers) � Apache � Jetty Tomcat � Glass. Fish � Web. Logic � Web. Sphere � JBoss �. . . � http: //en. wikipedia. org/wiki/Comparison_of_ web_server_software
Apache Tomcat � Neophodno ◦ Java JRE (za razvoj, obavezno JDK) ◦ Tomcat instalacija �Može se pokretati ručno ili kao servis. � Ukoliko se koristi kroz Eclipse, mora se podesiti kroz projekat Servers. ◦ Eclipse kopira podešavanja, tako da kasnija promena podešavanja u originalnom Tomcat direktorijumu ne utiču na server u Eclipse – u. ◦ Zgodno (ne i obavezno) je prekopirati Root aplikaciju u Eclipse – ov Tomcat direktorijum u workspace – u.
web. xml � Konfiguracioni � Sadrži fajl web aplikacije ◦ Generalni opis aplikacije (naziv, opis, …) ◦ Podrazumevane početne stranice ◦ Parametre koji su dostupni kroz celu aplikaciju <context-param> <param-name>webmaster</param-name> <param-value>myaddress@mycompany. com</param-value> <description>The EMAIL address of the site admin</description> </context-param> String value = get. Servlet. Context(). get. Init. Parameter(“webmaster”); ◦ ◦ Definicije servleta Konfiguraciju parametara sesije Pravila za autorizaciju pristupa resursima …
Servleti
Servleti � Nasleđuju � Glavni ◦ ◦ ◦ ◦ Http. Servlet klasu metodi init() service() do. Get() do. Post() do. Put() do. Delete() Destroy() � Standardni parametri ◦ Http. Servlet. Request ◦ Http. Servlet. Response
Šta servlet radi? � Pročita header – e koji su došli od klijenta. � Pročita podatke poslate od strane klijenta. � Obradi primljene podatke. � Pošalje klijentu header – e koji su mu potrebni. � Pošalje klijentu zahtevane podatke. � Pri obradi svakog zahteva, servlet kreira novi thread i poziva metod service().
Servleti – web. xml <servlet> <servlet-name>helloworld</servlet-name> <servlet-class> rs. ac. ni. pmf. Hello. World. Servlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
Servleti – web. xml <servlet> <servlet-name>helloworld</servlet-name> <servlet-class> rs. ac. ni. pmf. Hello. World. Servlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
Servleti – web. xml <servlet> <servlet-name>helloworld</servlet-name> <servlet-class> rs. ac. ni. pmf. Hello. World. Servlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
Servleti – web. xml � Od verzije 3. 0, servlet se može konfigurisati i korišćenjem anotacija. @Web. Servlet(name = "Hello World Servlet", url. Patterns = { "/hello" }) public class Hello. World. Servlet extends Http. Servlet { … } � Zavisno od potrebe (npr. zbog vrednosti nekih parametara), mogu se kombinovati pristupi.
Java Server Pages � Omogućavaju kreiranje stranica korišćenjem HTML – a i direktnim dodavanjem java koda. � Procesiranje jsp strana ◦ Klijent pošalje klasičan zahtev za. jsp stranicu. ◦ JSP fajl se pretvara u servlet (ukoliko već ne postoji ili ako je menjan). ◦ Servlet se izvršava i generiše se odgovor. � Faze ◦ ◦ u procesiranju su Prevođenje (Compile) Inicijalizacija Izvršenje Oslobađanje resursa (Cleanup)
Osnovna JSP sintaksa � Scriptlets – java kod između znakova <% %> ◦ U okviru koda je moguće direktno pristupati implicitnim objektima (request, response, out, session, . . . ) � JSP deklaracije - <%! %> � JSP izrazi - <%= %> � JSP komentari - <%-- --%> � JSP direktive - <%@ %> (page, include, taglib) � JSP akcije - <jsp: action_name attribute="value" />
- Slides: 20