1 2 Java Enterprise Edition Java Servlets Java

  • Slides: 89
Download presentation

План занятий 1. Введение, обзор, основы веб-приложений 2. Платформа Java Enterprise Edition • •

План занятий 1. Введение, обзор, основы веб-приложений 2. Платформа Java Enterprise Edition • • • Обзор Технологии Java Servlets и Java. Server Pages (JSP) Java Persistence API 3. Spring Framework • • Обзор Принципы Dependency Injection и Inversion of Control

Передача параметров в URL Формат: http: //<service_url>? param 1=value 1& param 2=value 2&. .

Передача параметров в URL Формат: http: //<service_url>? param 1=value 1& param 2=value 2&. . . &param. N=value. N Пример: http: //www. google. com/search? q=spring+framework

CSS - Cascading Style Sheets • CSS - язык для описания внешнего вида HTML

CSS - Cascading Style Sheets • CSS - язык для описания внешнего вида HTML документов • Основная цель – отделить содержание документа от его презентации html, body { margin-left: 20 px; margin-top: 20 px; font-family: Verdana, Arial; font-size: 12 px; } p { margin: 5 px 5 px; } a { text-decoration: none; color: #71179 E; } a: link { color: #71179 E; } a: visited { color: #71179 E; } a: hover { color: #209920; }

Модель TCP/IP IP = Internet Protocol TCP = Transmission Control Protocol

Модель TCP/IP IP = Internet Protocol TCP = Transmission Control Protocol

Примеры серверов • Некоммерческие • • • Apache Tomcat Jetty JBoss • Коммерческие •

Примеры серверов • Некоммерческие • • • Apache Tomcat Jetty JBoss • Коммерческие • • Sun Java System Application Server BEA Web. Logic Server Oracle Application Server Web. Sphere И многие другие. . .

Простой сервлет import javax. servlet. *; import javax. servlet. http. *; import java. io.

Простой сервлет import javax. servlet. *; import javax. servlet. http. *; import java. io. *; public class Hello. Servlet extends Http. Servlet { public void do. Get(Http. Servlet. Request request, Http. Servlet. Response response) throws Servlet. Exception, IOException { response. set. Content. Type("text/html"); Print. Writer out = response. get. Writer(); out. println("<html><body><h 1>" + "Hello World!</h 1></body></html>"); out. close(); }. . . }

Пример: простая JSP страница <html> <body> Hello World! Current time: <%= new java. util.

Пример: простая JSP страница <html> <body> Hello World! Current time: <%= new java. util. Date() %> Random number: <%= Math. random() %> </body> </html>

Пример: другая простая JSP страница <html> <body> Current time: <%= new java. util. Date()

Пример: другая простая JSP страница <html> <body> Current time: <%= new java. util. Date() %> Server: <%= application. get. Server. Info() %> Session ID: <%= session. get. Id() %> Last accessed: <%= session. get. Last. Accessed. Time() %> ms </body> </html>

Создание структуры проекта • Maven даёт возможность создать полноценную структуру веб-проекта с помощью одной

Создание структуры проекта • Maven даёт возможность создать полноценную структуру веб-проекта с помощью одной простой команды mvn archetype: create -Dgroup. Id=com. maven 2 example -Dartifact. Id=maven_example 2 webapp -Darchetype. Artifact. Id=maven-archetype-webapp

Выполнение на Jetty Добавление Jetty плагина в конфигурации Maven (pom. xml файл) <build> <final.

Выполнение на Jetty Добавление Jetty плагина в конфигурации Maven (pom. xml файл) <build> <final. Name>maven 2 example_webapp</final. Name> <plugins> <plugin> <group. Id>org. mortbay. jetty</group. Id> <artifact. Id>jetty-maven-plugin</artifact. Id> <version>8. 1. 13. v 20130916</version> </plugins> </build>

Выполнение на Jetty • Запуск сервера командой mvn jetty: run > mvn jetty: run

Выполнение на Jetty • Запуск сервера командой mvn jetty: run > mvn jetty: run [INFO] Scanning for projects. . . [INFO] Searching repository for plugin with prefix: 'jetty'. [INFO] ---------------------------[INFO] Building maven 2 example_webapp Maven Webapp [INFO] task-segment: [jetty: run] [INFO] --------------------------. . . [INFO] Starting jetty 7. 0. 0. 1 beta 1. . . [INFO] Started Jetty Server • Остановка сервера: Ctrl+C

Добавление сервлета • Шаг 1 – добавляем библиотеку Servlet API к classpath приложения в

Добавление сервлета • Шаг 1 – добавляем библиотеку Servlet API к classpath приложения в pom. xml <dependency> <group. Id>javax. servlet</group. Id> <artifact. Id>javax. servlet-api</artifact. Id> <version>3. 1. 0</version> </dependency>

Добавление сервлета • Шаг 4 – создаём класс сервлета @Web. Servlet("/my-servlet") public class Demo.

Добавление сервлета • Шаг 4 – создаём класс сервлета @Web. Servlet("/my-servlet") public class Demo. Servlet extends Http. Servlet { public void do. Get(Http. Servlet. Request request, Http. Servlet. Response response) throws Servlet. Exception, IOException { response. set. Content. Type("text/html"); Print. Writer out = response. get. Writer(); out. println( "<html><body>" + "<h 1>Hello Demo. Servlet!</h 1>" + "<h 1>Current time: " + new Date() + "</h 1>" + "</body></html>"); out. close(); } }

Выполнение кода сервлета mvn clean package jetty: run http: //localhost: 8080/my-servlet

Выполнение кода сервлета mvn clean package jetty: run http: //localhost: 8080/my-servlet

Spring Web MVC

Spring Web MVC

JSF: Java. Server Faces

JSF: Java. Server Faces

Play!

Play!

Lift

Lift

Категории No. SQL • Key-Value • • memcached Redis • Column Family • •

Категории No. SQL • Key-Value • • memcached Redis • Column Family • • • HBase, Cassandra Document Graph Multi-valued Object XML

Проект Spring Data • Предлагает поддержку и интеграцию с многими БД • Big Data:

Проект Spring Data • Предлагает поддержку и интеграцию с многими БД • Big Data: Apache Hadoop • Key-Value: Redis • Document: Mongo. DB • Graph: Neo 4 j • Column: HBase

Ajax Push Engine • Полноценное Comet (Ajax Push) решение • Push, don't pull! http:

Ajax Push Engine • Полноценное Comet (Ajax Push) решение • Push, don't pull! http: //www. ape-project. org

j. Query • j. Query – быстрая и удобная Java. Script библиотека, которая облегчает:

j. Query • j. Query – быстрая и удобная Java. Script библиотека, которая облегчает: • • навигацию по HTML документу <html> обработку событий <head> <script type="text/javascript" анимацию src="jquery. js“/> </script> <script type="text/javascript"> Ajax поведение // add Java. Script and j. Query code here </script> </head> <body> <!-- add HTML content here --> </body> </html>

Материалы http: //ante. lv/itis-web-java-2013/

Материалы http: //ante. lv/itis-web-java-2013/

Ресурсы HTTP http: //en. wikipedia. org/wiki/Hypertext_Transfer_Protocol Application Server http: //en. wikipedia. org/wiki/Application_server The Java

Ресурсы HTTP http: //en. wikipedia. org/wiki/Hypertext_Transfer_Protocol Application Server http: //en. wikipedia. org/wiki/Application_server The Java EE 7 Tutorial (Overview) http: //docs. oracle. com/javaee/7/tutorial/doc/overview. ht m#BNAAW Java Servlet Technology (The Java EE 7 Tutorial) http: //docs. oracle. com/javaee/7/tutorial/doc/servlets. ht m#BNAFD

Ресурсы Java. Server Pages Technology (The Java EE 5 Tutorial) http: //docs. oracle. com/javaee/5/tutorial/doc/bnagx.

Ресурсы Java. Server Pages Technology (The Java EE 5 Tutorial) http: //docs. oracle. com/javaee/5/tutorial/doc/bnagx. html Maven http: //maven. apache. org/what-is-maven. html Jetty http: //www. eclipse. org/jetty/ Jetty Maven Plugin http: //www. eclipse. org/jetty/documentation/current/jettymaven-plugin. html

Ресурсы Spring Framework http: //projects. spring. io/spring-framework/ Spring Web MVC framework http: //docs. spring.

Ресурсы Spring Framework http: //projects. spring. io/spring-framework/ Spring Web MVC framework http: //docs. spring. io/spring/docs/current/spring-frameworkreference/html/mvc. html Java. Server Faces Technology (The Java EE 7 Tutorial) http: //docs. oracle. com/javaee/7/tutorial/doc/jsf-intro. htm

Ресурсы Play! Framework http: //www. playframework. com/ Lift Framework http: //liftweb. net/ Redis Introduction

Ресурсы Play! Framework http: //www. playframework. com/ Lift Framework http: //liftweb. net/ Redis Introduction https: //github. com/antirez/redisdoc/blob/master/topics/introduction. md Spring Data Redis http: //projects. spring. io/spring-data-redis/ Google Web Toolkit http: //www. gwtproject. org/