Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 15.01.2014
Сообщений: 34

Не могу понять работу с сервлетами

03.04.2015, 19:00. Показов 1306. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс для генерации и работы с HTML я не могу понять (Пытаюсь понять работу с сервлетами)
строки, а именно
  1. 17
  2. 39 return this;
  3. 55 HTMLUtil.this.start.append("</table>"); как понять HTMLUtil.this.start(это типо обращение к полю start(оно в начале класса) класса HTMLUtil и добавление ему методом append)?
  4. 56 table = new StringBuilder();//я думаю что удаление всей информации из table
  5. 57 не понмаю почему return HTMLUtil.this; а неreturn this.HTMLUtil;

Класс формы впринципе понятен
Заранее спасибо за помощь.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package studinfo.web;
 
import java.util.Map;
//класс HTML функций
public class HTMLUtil {
    private StringBuilder start = new StringBuilder();//переменная для генерации кода
 
    public enum HTMLFormInputType {
        //создаем перечисляемые типы
        //Текстовое поле
        TEXT("text"),
        //Скрытое поле
        HIDDEN("hidden"),
        //Кнопка отправки
        SUBMIT("submit"), 
        //
        SECRET("secret");//НЕЗНАЮ ЧТО ЭТО
        private String type;
 
        private HTMLFormInputType(String type) {
            this.type = type;
        }
 
        public String getType() {
            return type;
        }
 
    }
        //Создание табоицы html
    public class HTMLTable {
        private StringBuilder table = new StringBuilder();
            //добавление начала таблицы 
        public HTMLTable() {
            table.append("<table border=1>");
        }
        //создание тега tr
        public HTMLTable tr() {
            table.append("<tr>");
            return this;//возвращает модифицированый объект
        }
        //тег th
        public HTMLTable th(String s) {
            table.append("<th>" + s);
            return this;//возвращает модифицированый объект
        }
        //тег td
        public HTMLTable td(String s) {
            table.append("<td>" + s);
            return this;//возвращает модифицированый объект
        }
        //конец таблицы
        public HTMLUtil done() {
            HTMLUtil.this.start.append(table.toString());//добавляем весь текст что накопился 
            //с помощью методов
            HTMLUtil.this.start.append("</table>");//закрываем таблицу
            table = new StringBuilder();//думаю так (обнуляем весь текст что был)А как на самом деле не знаю
            return HTMLUtil.this;//НЕ ПОНИМАЮ эту строчку
        }
    }
 
    public class HTMLForm {
 
        private StringBuilder form = new StringBuilder();
 
        public HTMLForm(String action, String method) {
            form.append("<form action=\"" + action + "\" method=\"" + method
                    + "\">");
        }
 
        public HTMLForm input(HTMLFormInputType type, String name, String value) {
            form.append("<input type=" + type.getType() + " name=\"" + name
                    + "\" value=\"" + value + "\" />");
            return this;
        }
 
        public HTMLForm echo(String s) {
            form.append(s);
            return this;
        }
 
        public HTMLForm select(String name, Map<String, Object> values) {
            form.append("<select name=\"" + name + "\">");
            for (String key : values.keySet()) {
                form.append("<option value=\"" + values.get(key) + "\">" + key
                        + "</option>");
            }
            form.append("</select>");
            return this;
 
        }
 
        public HTMLUtil done() {
            HTMLUtil.this.start.append(form.toString());
            HTMLUtil.this.start.append("</form>");
            form = new StringBuilder();
            return HTMLUtil.this;
        }
    }
 
    public HTMLUtil html() {
        start.append("<html>");
        return this;
    }
 
    public HTMLUtil title(String s) {
        start.append("<head><title>" + s + "</title></head><body>");
        return this;
    }
 
    public HTMLUtil echo(String s) {
        start.append(s);
        return this;
    }
 
    public HTMLUtil br() {
        start.append("<BR/>");
        return this;
    }
 
    public HTMLUtil nbsp() {
        start.append("&nbsp;");
        return this;
    }
 
    public HTMLUtil a(String url, String title) {
        start.append("<a href=\"" + url + "\">" + title + "</a>");
        return this;
    }
 
    public HTMLForm form(String action, String method) {
        HTMLForm form = new HTMLForm(action, method);
        return form;
    }
 
    public HTMLTable table() {
        HTMLTable table = new HTMLTable();
        return table;
    }
 
    public String done() {
        start.append("</body></html>");
        String s = start.toString();
        start = new StringBuilder();
        return s;
    }
 
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2015, 19:00
Ответы с готовыми решениями:

Помогите настроить JDK+JSDK на работу с СЕРВЛЕТАМИ
Уважаемый Java-programmer! У меня были JDK1.2.2 и JSDK1.2. Я из папки JSDK1.2 все перенес в папку JDK1.2.2 Начало проги...

Не могу понять работу кода
Есть код: HWND h = FindWindow(L&quot;имя_процесса&quot;,NULL); if (h) { h = FindWindowEx(h,NULL,L&quot;Edit&quot;,NULL); if (h) { ...

Не могу понять работу zlib
Вот такой код: s = &quot;тест&quot; s = bytes(s, &quot;utf8&quot;) print(&quot;Символов до сжатия:&quot;, len(s)) result = zlib.compress(s) print(&quot;Символов...

4
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
06.04.2015, 09:48
Лучший ответ Сообщение было отмечено Андрей Щукин как решение

Решение

Цитата Сообщение от Андрей Щукин Посмотреть сообщение
39 return this;
почитай про зарезервированной слово this. В твоем случае возвращается ссылка на сам объект, который вызвал метод, то есть в каждом твоем методе где есть такая строка, объект сначала модифицируется (поля какие то заполняются, добавляются данные) а затем возвращает ссылку на уже измененный объект. Как я понимаю класс писал не ты)
Цитата Сообщение от Андрей Щукин Посмотреть сообщение
55 HTMLUtil.this.start.append("</table>"); как понять HTMLUtil.this.start(это типо обращение к полю start(оно в начале класса) класса HTMLUtil и добавление ему методом append)?
я с ХТМЛУтил не работал, но по аналогии с другими методами -ты верно понимаешь, добавляется параметр в поле старт.
Цитата Сообщение от Андрей Щукин Посмотреть сообщение
56 table = new StringBuilder();//я думаю что удаление всей информации из table
да, заново создается объект класса, все данные очищаются
Цитата Сообщение от Андрей Щукин Посмотреть сообщение
57 не понмаю почему return HTMLUtil.this; а неreturn this.HTMLUtil;
по другому нельзя, хотя возможно в данном случае можно написать просто return this
1
 Аватар для beldeputa
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 8
06.04.2015, 17:37
Цитата Сообщение от Welemir1 Посмотреть сообщение
да, заново создается объект класса, все данные очищаются
Не понял, какие конкретно данные очищаются?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
06.04.2015, 17:54
все, что было в переменной table. После операции new объект создается новый и естественно пустой, все что хранила table уходит как сон златой.
1
1 / 1 / 0
Регистрация: 15.01.2014
Сообщений: 34
08.04.2015, 20:09  [ТС]
Welemir1, Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.04.2015, 20:09
Помогаю со студенческими работами здесь

Не могу понять работу getchar();
Программа сначала создает матрицу l на h и заполняет ее рандомными числами. Дальше текст проги - не важен. И самое главное: мне нужно...

Не могу понять работу некоторых строк скрипта
Коллеги, приветствую! Я программирую на 1С и Perl не знаю. При этом есть задача разобрать логи 1С с помощью скрипта. Сам скрипт тоже...

Работа с функциями, что то я не могу понять как продолжить работу
Всем доброго времени суток , я учу Java и хотел попробовать функции . и что то застопорился не могу понять как передать значения в функции...

Как понять поставленную задачу. Не могу понять этот полиморфизм?
A software academy teaches two types of courses: local courses that are held in some of the academy’s local labs and offsite courses held...

Пытаюсь понять комбинаторику.Не могу понять какую формулу использовать
Добрый день. Уже второй день бьюсь над комбинаторикой. Проблема стоит в том, что не могу понять, какую формулу нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru