[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Общего плана ->Предложения по новым курсам DL 1, 2, 3, ... 5, 6, 7, 8, 9, ... 11, 12, 13
Автор Сообщение
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Добавить примеры

Взаимодействия 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>  



Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру 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, а в каждом примере сделать ссылку на это сообщение

Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру 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 --%>. Такие комментарии создаются в созданном сервлете и не посылаются
клиенту. Для любых комментариев по коду или отладочной информации необходимо использовать этот тип комментариев.
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру 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"
У тебя в теории скопировано объяснение, но мне не понятно – можно попроще объяснить и примеры привести?

Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечание по примеру 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
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру Jsp forward(jsp:forward)
http://dl.gsu.by/web-samples/jsp-course/actionForward.jsp

<jsp:forward page = "forwardForForward.jsp" />

- отсутствует теория
- нет строки "результаты работы"
- хотелось бы возможность forwardForForward.jsp
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру Jsp text(jsp:text)
- скопирована ссылка на JSP forward

Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру HTTP Header Request
http://dl.gsu.by/web-samples/sources/jsp-course/headerRequest.jsp

- отсутствует теория
- хотелось бы пояснений хотя бы к важным сущностям, для получения которых и делают этот request

Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру HTTP Header Response
http://dl.gsu.by/web-samples/jsp-course/headerResponse.jsp

- отсутствует теория
- я понял это автообновление странички через указанное число секунд
- а слово Header в названии мне показалось лишним
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру 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
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру "Получение конкретного параметра из URL"
http://dl.gsu.by/web-samples/jsp-course/getOneParam.jsp

- в теории нужно пояснять только то, что нужно для этого примера, используется в этом примере
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру "Получение всех параметров из URL"
http://dl.gsu.by/web-samples/jsp-course/getAllParam.jsp

- не хватает хоть статического примера указания нескольких параметров
- в теории нужно подробнее пояснять всё, что используется в этом примере
- хорошо бы в этом или другом примере показать, как в коде используются имена параметров и их значения

Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру "Получение IP пользователя"
http://dl.gsu.by/web-samples/jsp-course/getIp.jsp

- в теории нужно подробнее пояснять всё, что используется в этом примере
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру "Обработка формы, метод 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>

Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Замечания по примеру "Обработка формы, метод 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>

 
Индекс форума ->Общего плана ->Предложения по новым курсам DL 1, 2, 3, ... 5, 6, 7, 8, 9, ... 11, 12, 13
Time:0,04