Автор |
Сообщение |
10.05.2018 09:52:55
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Добавить примеры
Взаимодействия JSP с пользователем
При запуске index.jsp пользователю предлагается ввести имя (поле uname)
По нажатию Enter вызывается welcome.jsp, которая с помощью request.getParameter("uname") получает текст, введённый пользователем
index.jsp
<html>
<body>
<form action="welcome.jsp">
<input type="text" name="uname"><br/>
<input type="submit" value="go">
</form>
</body>
</html>
welcome.jsp
<html>
<body> <%= "Welcome "+request.getParameter("uname") %>
</body>
</html>
|
10.05.2018 09:54:26
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру HelloJSP
http://dl.gsu.by/web-samples/jsp-course/helloFromJsp.jsp
1. Надо выдавать сообщение – замените браузер
И сделать это отдельным примером или встроить в HelloJSP
И красиво встроить во все другие примеры
Ещё лучше - обеспечить работу и под IE
2.
Как раз всё в теорию для данного примера и поместить ответы на все мои вопросы
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Для всех JSP такая строка? Может что-то другое быть?
Заголовок
<head>
<link rel="stylesheet" type="text/css" href="../resources/css/style.css">
<script type="text/javascript" src="../resources/javascript/task.js"></script>
<script src="https://unpkg.com/kotlin-playground@1" data-selector=".kotlin-code"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
Если можно без этих строк обойтись – удалить их
Если нельзя – написать ЗАЧЕМ КАЖДАЯ строка
Добавлять описание кода
Типа
В HTML-шаблоне создаём таблицу 2 строки по 2 колонки
Результат Сюда сгенерируем результат
Исходный код Здесь будем показывать исходный код
Cols=2 ускоряет отображение
Отсюда
http://confluence.newit.gsu.by/pages/viewpage.action?pageId=35586051
Убрать первые два пункта (можно сохранить отдельно в другом месте)
Там же теория «содрана» откуда-то.
Лучше написать СВОИМ языком и только то, что может пока понять новичок.
Добавить в таблицу СТРОКИ с дополнительными примерами
<table cols="2">
<tr><td> Тема </td> <td> Результат </td> </tr>
<tr><td> Строка-константа </td> <td> <%= "Hello from JSP" %> </td> </tr>
<tr><td> Текущие дата и время </td> <td> <%= new java.util.Date () %> </td> </tr>
<tr><td> Текущее время </td> <td> <%= java.util.Calendar.getInstance().getTime() %> </td></tr>
<tr><td> IP-адрес пользователя</td> <td> <%= request.getRemoteAddr() %> </td> </tr>
</table>
? ещё что-то полезное можем здесь показать?
Изменить название примера
Простейший вывод на страницу : текстов, результатов выполнения JAVA-функций, и методов классов, значений JSP-выражений
С теории сделать ссылку на описание библиотеки java.util (и других полезных библиотек)
Подробно объяснить строки для отображения исходного кода jSP
Мне кажется, незачем пихать его в таблицу (слева место крадётся на первый столбец)
Лучше просто вниз открывать (сверху как работает, ниже – как написано)
И не придётся в странице такое писать : <td></td>
При этом код отображения текста JSP - тоже нужно скрывать
- кто хочет должен сделать клик чтобы почитать этот код
И вообще всё стандартное максимально скрыть (вынести в отдельные файлы, а здесь только их подключение)
Чтобы не мешало обучению – видеть, только то что сейчас нужно - возможно использовать include:
"... В отличие от директивы include, которая вставляет файл на этапе трансляции страницы JSP"
Далее вопросы по этому коду
<div class="kotlin-code" data-highlight-only folded-button="true">
<pre>
<code class="hljs language-text" id="ajaxDiv">
<script type="text/javascript">
.ajax({
url: "<%=request.getContextPath()%>/sources/jsp-course/helloFromJsp.jsp",
success: function(data){
("#ajaxDiv").text(data);
}
});
</script>
</code>
</pre>
</div>
Нужно пояснить зачем эти строки
<div class="kotlin-code" data-highlight-only folded-button="true">
<code class="hljs language-text" id="ajaxDiv">
<script type="text/javascript">.ajax({
url: "<%=request.getContextPath()%>/sources/jsp-course/helloFromJsp.jsp",
success: function(data){("#ajaxDiv").text(data);
}
<button class="button-source"><a href="<%=request.getContextPath()%>/sources/jsp-course/helloFromJsp.jsp"
target="_blank">Показать в отдельной вкладке</a></button>
<button class="button-source"><a href="http://confluence.newit.gsu.by/pages/viewpage.action?pageId=35586051"
target="_blank">Теория</a></button>
Могут ли быть какие-то альтернативы им?
Возможно пояснения, которые для всех примеров (начальные строки в head, как отображается код и проч.)
Вынести в отдельное сообщение в Confluence, а в каждом примере сделать ссылку на это сообщение
|
10.05.2018 09:57:44
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру getDate.jsp
http://dl.gsu.by/web-samples/jsp-course/getDate.jsp
1. После нажатия на + потом x, исходный код урезается – ошибка сервлета отображения
2.
Появились новые строки вначале – подключения библиотек – надо их пояснить
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
3.
Надо также пояснить код
Date dateNow = new Date();
SimpleDateFormat formatForDateNow = new SimpleDateFormat("'Текущая дата 'yyyy.MM.dd 'и время' hh:mm:ss ");
out.println(formatForDateNow.format(dateNow));
4. А сейчас в теории такой текст – к чему он здесь?
Как комментировать код в JSP?
HTML комментарии — <-- HTML Comment -->. Такие комментарии будут видны клиенту при просмотре кода страницы.
JSP комментарии — <%-- JSP Comment --%>. Такие комментарии создаются в созданном сервлете и не посылаются
клиенту. Для любых комментариев по коду или отладочной информации необходимо использовать этот тип комментариев.
|
10.05.2018 10:11:10
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру Jsp включение(jsp:include)
http://dl.gsu.by/web-samples/sources/jsp-course/actionInclude.jsp
Надо дать возможность посмотреть сам код dateForInclude.jsp
<jsp:include page = "dateForInclude.jsp" flush = "true" />
И объяснить, что означает flush = "true"
У тебя в теории скопировано объяснение, но мне не понятно – можно попроще объяснить и примеры привести?
|
10.05.2018 10:28:19
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечание по примеру Jsp useBean(jsp:useBean, jsp:setProperty, jsp:getProperty)
http://dl.gsu.by/web-samples/jsp-course/actionUseBean.jsp
HTTP Status 500 – Internal Server Error
Type Exception Report
Message /jsp-course/actionUseBean.jsp (line: 17, column: 12) The value for the useBean class attribute by.gsu.classes.jspCourse.TestBean is invalid.
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: /jsp-course/actionUseBean.jsp (line: 17, column: 12) The value for the useBean class attribute by.gsu.classes.jspCourse.TestBean is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:291)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
org.apache.jasper.compiler.GeneratorGenerateVisitor.visit(Generator.java:1379)org.apache.jasper.compiler.NodeUseBean.accept(Node.java:1187)
org.apache.jasper.compiler.NodeNodes.visit(Node.java:2392)org.apache.jasper.compiler.NodeVisitor.visitBody(Node.java:2444)
org.apache.jasper.compiler.NodeVisitor.visit(Node.java:2450)org.apache.jasper.compiler.NodeRoot.accept(Node.java:471)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392)
org.apache.jasper.compiler.Generator.generate(Generator.java:3652)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:252)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.
Apache Tomcat/8.5.12
|
10.05.2018 10:30:56
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру Jsp forward(jsp:forward)
http://dl.gsu.by/web-samples/jsp-course/actionForward.jsp
<jsp:forward page = "forwardForForward.jsp" />
- отсутствует теория
- нет строки "результаты работы"
- хотелось бы возможность forwardForForward.jsp
|
10.05.2018 10:35:04
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру Jsp text(jsp:text)
- скопирована ссылка на JSP forward
|
10.05.2018 10:41:06
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру HTTP Header Request
http://dl.gsu.by/web-samples/sources/jsp-course/headerRequest.jsp
- отсутствует теория
- хотелось бы пояснений хотя бы к важным сущностям, для получения которых и делают этот request
|
10.05.2018 10:45:27
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру HTTP Header Response
http://dl.gsu.by/web-samples/jsp-course/headerResponse.jsp
- отсутствует теория
- я понял это автообновление странички через указанное число секунд
- а слово Header в названии мне показалось лишним
|
10.05.2018 10:50:14
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру HTTP Status Codes [/b]
http://dl.gsu.by/web-samples/jsp-course/forStatusCode.jsp
Результат работы :
Исходный код:
?
response.sendError(404, "Need authentication!!!" );
HTTP Status 404 ? Not Found
Type Status Report
Message Need authentication!!!
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/8.5.12
|
10.05.2018 10:54:45
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру "Получение конкретного параметра из URL"
http://dl.gsu.by/web-samples/jsp-course/getOneParam.jsp
- в теории нужно пояснять только то, что нужно для этого примера, используется в этом примере
|
10.05.2018 11:00:40
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру "Получение всех параметров из URL"
http://dl.gsu.by/web-samples/jsp-course/getAllParam.jsp
- не хватает хоть статического примера указания нескольких параметров
- в теории нужно подробнее пояснять всё, что используется в этом примере
- хорошо бы в этом или другом примере показать, как в коде используются имена параметров и их значения
|
10.05.2018 11:04:26
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру "Получение IP пользователя"
http://dl.gsu.by/web-samples/jsp-course/getIp.jsp
- в теории нужно подробнее пояснять всё, что используется в этом примере
|
10.05.2018 11:16:46
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру "Обработка формы, метод Get"
http://dl.gsu.by/web-samples/jsp-course/getMethod.jsp
- теории вообще нет
- не понятно как работает этот код
- в теории нужно подробнее пояснять всё, что используется и как работает в этом примере
- надо показать forGetMethod.jsp
Исходный JSP код
<form action = "forGetMethod.jsp" method = "GET">
First Name: <input type = "text" name = "first_name"> <br />
Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>
Обновлённый URL
http://dl.gsu.by/web-samples/jsp-course/forGetMethod.jsp?first_name=Michael&last_name=Dolinsky
Сгенерированный HTML-код
<ul>
<li><p><b>First Name:</b> <%= request.getParameter("first_name")%> </p></li>
<li><p><b>Last Name:</b> <%= request.getParameter("last_name")%> </p></li>
</ul>
|
10.05.2018 11:22:43
Тема: Re:WEB-технологии для начинающих
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Замечания по примеру "Обработка формы, метод Post"
http://dl.gsu.by/web-samples/jsp-course/postMethod.jsp
- теории вообще нет
- не понятно как работает этот код
- в теории нужно подробнее пояснять всё, что используется и как работает в этом примере
- используется forGetMethod.jsp, а нужен forPost?
- что не так в методе Post по сравнению с Get?
Исходный JSP код
<form action = "forGetMethod.jsp" method = "POST">
First Name: <input type = "text" name = "first_name"> <br />
Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>
Обновлённый URL
http://dl.gsu.by/web-samples/jsp-course/forGetMethod.jsp
Сгенерированный HTML-код
<ul>
<li><p><b>First Name:</b> <%= request.getParameter("first_name")%></p></li>
<li><p><b>Last Name:</b> <%= request.getParameter("last_name")%> </p></li>
</ul>
|
|