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

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

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

Author24 — интернет-сервис помощи студентам
Есть класс для генерации и работы с 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2015, 19:00
Ответы с готовыми решениями:

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

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

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

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

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

Решение

Цитата Сообщение от Андрей Щукин Посмотреть сообщение
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
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 8
06.04.2015, 17:37 3
Цитата Сообщение от Welemir1 Посмотреть сообщение
да, заново создается объект класса, все данные очищаются
Не понял, какие конкретно данные очищаются?
0
Автоматизируй это!
Эксперт Python
7107 / 4610 / 1215
Регистрация: 30.03.2015
Сообщений: 13,236
Записей в блоге: 29
06.04.2015, 17:54 4
все, что было в переменной table. После операции new объект создается новый и естественно пустой, все что хранила table уходит как сон златой.
1
1 / 1 / 0
Регистрация: 15.01.2014
Сообщений: 34
08.04.2015, 20:09  [ТС] 5
Welemir1, Спасибо за помощь!
0
08.04.2015, 20:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2015, 20:09
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru