
- •Интернет-программирование
- •ИП. Сервлеты и JSP
- •ИП. Сервлеты и JSP
- •ИП. Сервлеты и JSP
- •ИП. Сервлеты и JSP. Отличия в работе
- •ИП. Сервлеты и JSP. Сервлет-контейнеры
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура приложения
- •ИП. Сервлеты и JSP. Структура сервлетов
- •ИП. Сервлеты и JSP. Структура сервлетов
- •ИП. Сервлеты и JSP. Стуктура сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов. Жизненный цикл
- •ИП. Сервлеты и JSP. Работа сервлетов.
- •ИП. Сервлеты и JSP. Работа сервлетов.
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов
- •ИП. Сервлеты и JSP. Работа сервлетов. Пример web.xml файлаМИЭТ, 2017
- •ИП. Сервлеты и JSP. Идея JSP
- •ИП. Сервлеты и JSP. Архитектура приложения JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP. Атрибуты директив
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Cинтаксис JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP. Компоненты JSP
- •ИП. Сервлеты и JSP.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
- •ИП. Сервлеты и JSP. Выбор инструментария.
ИП. Сервлеты и JSP. Компоненты JSP |
МИЭТ, 2017 |
//Пример JavaBean класса NestMiet.java
public class TestMiet implements java.io.Serializable {
private String name;
// Методы геттеры (get) и сеттеры (set) public String getName() {
return name;
}
public void setName(String name) { this.name = name;
}
//Переопределенные методы equals() и hashCode() @Override
public boolean equals(Object o) {...}
@Override
public int hashCode() {...}
@Override
public String toString() { ... }
}
ИП. Сервлеты и JSP. Компоненты JSP |
МИЭТ, 2017 |
//Пример JavaBean класса TestMiet.java
package example;
public class TestMiet implements java.io.Serializable {
private String name;
// Методы геттеры (get) и сеттеры (set) public String getName() {
return name;
}
public void setName(String name) { this.name = name;
}
//Переопределенные методы equals() и hashCode() @Override
public boolean equals(Object o) {...}
@Override
public int hashCode() {...}
@Override
public String toString() { ... }
}
ИП. Сервлеты и JSP. Компоненты JSP |
МИЭТ, 2017 |
//Пример подключения и использования JavaBean класса TestMiet в JSP
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*, java.text.*" %>
<jsp:useBean id="miet" class="example.TestMiet" scope="page" /> <jsp:setProperty name="miet" property="Name" value="MIET" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>MIET с JSP!</title>
</head>
<body>
<h1>Вас приветствует <jsp:getProperty name="miet" property="Name" /></h1>
</body>
</html>
Как видно, использование компонентов JavaBean нацелено на «верстальщиков», Которые таким образом могут использовать классы Java не зная языка Java
ИП. Сервлеты и JSP. Компоненты JSP |
МИЭТ, 2017 |
В принципе вся страница JSP может быть переписана в xml-стиле с помощью эквивалентных замен:
Конструкция JSP |
Эквивалентная конструкция в XML |
<% page ... %> |
<%jsp:directive.page ... /> |
<% include ... %> |
<%jsp:directive.include ... /> |
<%! ... %> |
<%jsp:declaration> |
|
. . . |
|
<%/jsp:declaration> |
<% ... %> |
<%/jsp:scriptlet> |
|
. . . |
|
<%/jsp:scriptlet> |
<%= ... %> |
<%/jsp:expression> |
|
. . . |
|
<%/jsp:expression> |
ИП. Сервлеты и JSP. |
МИЭТ, 2017 |
Очевидно, что сервлеты и JSP существенно сложнее чем PHP или JavaScript
Какое решение выбрать для Интернет-разработки?
ИП. Сервлеты и JSP. Выбор инструментария. |
МИЭТ, 2017 |
Рассмотрим характеристику скорости исполнения теста Мандельброта для: PHP, Java, C предложенные Дмитрием Стоговым здесь:
https://gist.github.com/dstogov/12323ad13d3240aee8f1
И добавим к ним реализацию того же теста на JavaScript, выполняемого под управлением node.js

ИП. Сервлеты и JSP. Выбор инструментария. |
МИЭТ, 2017 |
2015. PHP 7.0
Дмитрий
Стогов
Автор eAccelerator Ведущий разработчик Zend Technologies

ИП. Сервлеты и JSP. Выбор инструментария. |
МИЭТ, 2017 |
Тест Мандельброта это программа рисующая символами фрактал

ИП. Сервлеты и JSP. Выбор инструментария. |
МИЭТ, 2017 |
Бенуа Мандельброт 1924-2010
Французский и американский математик, теоретик фракталов
ИП. Сервлеты и JSP. Выбор инструментария. |
МИЭТ, 2017 |
Тест Мандельброта имеет параметр задержки MAX_ITERATION, который не позволяет вывести символ * для текстового построения фрактала пока цикл не выполнит количество итераций цикла равное MAX_ITERATION
private static int iterate(float x, float y)
{float cr = y-0.5f; float ci = x; float zi = 0.0f; float zr = 0.0f; int i = 0;
while (true) { i++;
float temp = zr * zi; float zr2 = zr * zr; float zi2 = zi * zi; zr = zr2 - zi2 + cr;
zi = temp + temp + ci; if (zi2 + zr2 > BAILOUT)
return i;
if (i > MAX_ITERATIONS) return 0;
}
Далее в зависимости от возврата iterate печатаем * или пробел
if (iterate(x/40.0f,y/40.0f) == 0) System.out.print("*");
else System.out.print(" ");