�����: �������� �����,
�� ���. ������� ��������
�������� �������: 25.11.2002
� ����������� ���� �� ����� ����������� ��� Java-���������� ����� �� �������� ����������� ��� ��� ���������, ��������� ������� �� �������� �� ����� � ��������� ��� ����� ����������� ����� �� ������� ������������ � ���������� ���� �� ���� � ���� ������� ���� ��������� HTTP �����. � ���� �������� ���� �� ����� �� ������� ������������ Java Server Pages (JSP). �� ������� ��������� ������ � JSP, �� ������� ����� � �������� ����� JSP � ���������� � �� ������� �������, ����� ��������� �������� �� ��������� �� Web-����������. �� �� ����� � �������� ������ �� Web-����������, ����� ������� Java ������������ �� Web-������������ � ��������.
Java Server Pages (JSP)
� ����������, ����� ��������� � �������� HTML �������� �� �� ������� ���������
��� �� Java, ����� �� ��������� ��� ������ �� ������ ���� ��������. �����������
��������� ���, �������� � HTML ��������� �� �������� ��� ��������� ������ � ��
������� ���������. HTML ���������, ��������� ���������, �� ������� JSP-��������
��� �� ��-������ JSP-��. ������ Web-����������� ��������� ���� JSP ���� ���
��������� ������ �� ������ �� ����, �� ����� HTML ����������, ����� �� �������
� ���� ����, ���� ������ ���������, �������� � ����, �� ���������� �� ���������
� ��������� ������� �� ���. ���� ���� JSP ��������, ����� � ������� ����� Java
� HTML, ���� ������������ �� �� �������� � ��������� ��������� ���� HTML
��������. ������ � ���������� HTML � ���� �������� �� �� ������ ��������, �
��������� ��� �� Java �� �� ���� ���� �� ���������� �� ����������� ����� ��
���� ��������, � �� �� ����� ��������. �� ������� �� ����������, � JSP-���� ��
� ����� ���������� HTML ����� �� �� ��������� � �������� ����� ���� ����������
�� ���� out.println(�),
������ ������ ���� ���� �� �� �������� ���� HTML �����. ���� ����� ��������
�������� �� ������������, ��������� ���������� �� ���� � ��������� �����������
��.
�����������
� JSP-���������� �� �������� � ���o���� <%
� %> ��������� �� ������ �
����. ��� ���� ������ �� JSP, ����� ��������� �������� ���� � ���, �����������
��������:
<html>
��� <head><title>
Date JSP demo </title></head>
��� <body>
������� The
date is:
������� <%
out.println(new java.util.Date()); %>
��� </body>
</html>
����� �� ����� �� ������ �� ���� �������� JSP, �� ����� ������� �� ��������� HTML ��������, ���� �� ������� ��������, ����� �� ��������� ��������� � ��������� �������� ���� � ��� ���� ������������ �������� �� Java.
������ ��������� �� Java Server Pages ��� ������ JSP-�������� ����������� �� �������� �������� ������:
request � �� ������ �� �������� � ����������� ��������� ���� ���
response � �� ���������� �� �������� �� ��������
out � ������� ������� ����� �� �������� �� ��������
session � �� ���������� �� ��������������� �����
application � �� ������ �� �������, ����������� ��� Web-������������
�� �������� �� ����������� ���� ������ �� �������� �� ������ ��������� � JSP-����������. � ����� ������ ����������� ������ out, ���� ����� ����������� �������� ���� � �������� ����� �� JSP-����������.
������������ Java Server Pages ���������� �� Web-������������ ����� ��������� � ����� ������. �� ���������� ���-������� �� ���.
JSP �������� �� �������� �����
�� ����������� �� ���������� �� Java ����� � �������� ����� �� �������� ��
��������. ���� ����� ���� ���� <%= �����
%>, ����� � ������������ �� ��������� <% out.write(�����) %>. �� ������
����� �� ����� JSP-��������, ����� ��������� ������� �� 1 �� 100 � �������
��������:
<html>
��� <head><title>
Squares JSP demo </title></head>
��� <body>
������� <%
for (int i=1; i<=100; i++) { %>
����������� Square
of <%= i %> is equal to <%= i*i %>.
����������� <br>
������� <%
} %>
��� </body>
</html>
����������,
�� ������ �� ��������� ����������� �� ���������� � Java ���� �������
����������� � ����������� �� �����, ����� �������� ������ �� �� � � �������
����, ������ ������ ���� ���� �� � ������� � �������� � ��������� �������
�����, �.�. �� ������� � �{�
� �� �������� � �}�. ���� ���
�� �������� ���� 1 ��� HTML �� ���� �� ����, � ���������� ��� �� � ������� �
������� �����. �������� ��-���� ����������� � ��� ���� ���������� �� JSP-���� �
�� �� �������� ���� HTML � ������ �� ����� � if-�����������. ����� �� �����,
�������� � ���� ����� �� ������� � ���� �������� � �� �������� � ����, � ������
�� �� � � ���� HTML, ���������� ����� ����� ���������. ���� �� �������� �
������, �� ����� JSP ����������� �� ������������� � �������� � ��-����� � Java
����-��� �� ��������, ����� ���� ���� �� ��������� �� �������.
JSP-����
�� �������, ����� �� ������������� � �������� �� Web-����������, ����� ��
��������� � ���� ���� �� ���������� ���� ���-��������� �������. ������ ����
������� ������, ����� ����� �� ���������� �� ����������� ����� �� �����, ���� �
�� JSP-����. � ����� ����������, ������ JSP ��������, �������� �������� HTML
�����, ��������� � ����� JSP ������, �� ������������ � ��������� ��� �� Java �
�� ������� � ������ �� �����, ����� �� ������� �� ������ service(�) �� ����� HttpServlet. ������ ���� JSP ����������
��������� ����� �� GET ���� � �� POST ������ �� ��������� HTTP. �� ��������
����� �� �������, �� Web-�����������, ������ ������������ ���� JSP �������� �
�������, �������� ������ ������, �������������� ���� HTML ����� � ���������
���, ����� ��������� ���� ����� � �������� ����� �� �������� �� ��������.
�������� ������� ��� �� ������ JSP, �������� ������ �<html>�, �� ������ ���
��������������� � ��������� ��� ������� �� out.write
(�<html>�). ����� �� �� ���������� JSP-���� � �� ���� �����
� ���� ���-���������� ��������, � ����� ��� ������ ������� �� ����������� ��
���� HTML �����, ��� �� �� �������� out.println(�)
��� out.write(�). ������� ��,
����� ������� ����� �� �������� �� �������� HTML �����, JSP-���� �� ��������� �
����� ������������ ������, ���� �� �� ����������, ��� ����������� ��������. �
JSP �� � ����� �� �� ������������ ����, ����� ��������� HttpServlet, ���������� �������� doGet(�), doPost(�), ����� �������� ����� �� response-������ � ����
� ����. ������ ���� ����� �����������. ����� �� �������, �� JSP � ����������
������ �� ���������� �� ���������� ���� ����������, ������ ��������� �������
����������� � ������������ ���������� �������� �������� �� ����������� �� ���������
HTML ���������.
��� ����� ��������� �� ���� JSP, Web-����������� �� ������������ � Java ���� ��� �� �������, ��������� �� � �������� ���� ����. ���� ���� ������� ���� ���� � ������� � �� ���������. ��� ����� �������� ���������, ��� JSP-�� �� � ���������, �� �� �� ��������� ��������, � �������� �� ��������� ��������� �� ������� ��������� ���������� ���. ��� JSP-�� � ���������, �� ����������� �� �������������. ��� JSP-���� �� � ���������� �� �� ���������� �������� ��� ����� �������, �� �� �� ���� ��������� �� ���, ����� ������ �� �� ����� ��� ��������� �� ������� ��� �������� Web-����������. ������ JSP-���� �� ��������, �� ���� ����� ������ �����, ���� ���������� � ����� �� ��������� ������, ����� ����� �� ���, ���� �������� ��������� �� ���������� �� ��������������� �����. ��� JSP-���� ����������� �� ������� ����� � ��� session, ����� ��������� ��������������� ����� � ����� �����, � �������� �� ����� �������� ������ �� ������ Web-����������. ����� �� ���������� ���� ����� �� ���������� �� �����, �������� � ������� ���������� � �������� �������������� � Web-������������.
JSP ������������ �������������
��������� ��������� ��� �� Java, ����� �� ������� � ���� �� ����������� ��
JSP-�� �������, �������� � ����� �� ��������, ����� �� ��������. �� ������� ��
�����������, ����� �� ������� � ������ �� �����, ����� �� ���� �� ������ jspService(�) �� ����� HttpServlet, JSP ������������ �� �������
�� � ������� �����, � �������� � ������ �� �����. ����������� JSP ������������
�� ������� �� ��������� HTML ����� ���� ���� <%!
� %>. ��������� �� ���-����� �� ���������� �� ������, �����
���� ���� ����� �� �� �������� �� �����������, � ���� � �� ����������� ��
����-���������� � ����� �� ��������, ����� �� �������� �� �������� JSP. ���
���� ������ �� JSP, ����� �������� � ��������� 10 �������� �����, ����� ��
����� � ����� 0 � 999:
<%!
private java.util.Random
mRandomGenerator =
new
java.util.Random();
private int getRandomNumber(int
range) {
��� return
mRandomGenerator.nextInt(range);
}
%>
<html>
��� <head><title>Random
numbers demo</title></head>
��� <body>
������� <% for (int i=1;
i<=10; i++) { %>
����������� Random number #<%= i
%> is
����������� <%=
""+getRandomNumber(1000) %>.<br>
������� <% } %>
��� </body>
</html>
����� �� ����� �� ����, �
���� ������ � ���� <!% � %>
�� ��������� � ������������ ����� �� ����� java.util.Random
� ����� � ����� �� ��������, ����� ����� �������� ���� ����� � �������
��������. ���� ���� ���� ����� �� �������� �� JSP �����, ����� ���������
�������� ����� ����� 0 � 999. ���� �� �� ��������, �� ������������ �� ����� java.util.Random ����� ���� ������� ���
�� �����, ������������ �� ����� �� ������, � ����� ���� ���� ����. ���
���������� ������������ �� Java � ���������� ����� �� �� �������� ������ ����
��������� ���� import,
�������� �� ��� �� �����. ���� ���� ����� �� �� ��������� ��������� ��
���������� ������ ���� �� �������� ���� ������� �� ��� ��������, �� ����� ��
�����������. � JSP ���� ��� ����� �� import-���� �� ������. ���� ����� �
��������� <%@ page
import="���_��_�����" %>, ����� �� ����� ����������
� �������� �� JSP-����������. �������� �������� ��� � JSP ��������:
��� <%@ page import="java.util.*" %>
� ������������ �� ����
��� import java.util.*;
������� � �������� �� �������� ����� ������������ �� �����, ����� �� �������� ��� ��������������� �� JSP-�� � �������. ���� ������� ������� �� JSP ��������� ���� �� �� ������ � content-type-� �� �������� ��������. �������� ��� ������ �� ������ ��������, ����� �� �� ������������ �� Web-�������� �� ������� ���� ���� �����, � �� ���� HTML, ����� �� ������� �������� �� ���� �� ��������� ������ �� JSP ���������:
��� <%@ page contentType="text/plain"
%>
� ������� �������� ����� �� �� ������� � ����� ��������� �� JSP-����������. �������� ���������
��� <%@ page session="false" %>
������, �� JSP ���������� ���� �� �������� �����, � ����� �� �������� �������� �� ��� � ������������ �������� �� ��������� ��-�����. ���� ��������� ������ �� �� ����� ��� ������ JSP ��������, ����� �� ��������� ��������������� ����� (������ session). ���� ������� ������� �� JSP ����������, ����� ���� �� �� ������ �� ������� �����, � ���������� �� ��������� �� ������ (error page). ��� � �������� �� ���� JSP �������� �� ����� ���, ����� �������
��� <%@ page
errorPage="�����_���������_URL" %>
��
����� ���������� (exception), ���������� �� ����� �� ���������� �� JSP-��,
����� �� � ���������� �� ���� JSP, �� ������� �� ���������� �������� ��
��������� �� ������. �������� �� ���� �������� �� ��������� �� ������ � ��
������ �������� ��� ������, ��������� �� ����������� � ���������� �� �� �������
�� ������� �������������� �� ����������� �������. ����� error �������� ������
�� ������� ���� <%@ page
isErrorPage="true" %>,
����� ������, �� ���� � �������� �� ��������� �� ������. � ������ �������� �
�������� ��� ���� ������������ ����� exception, ����� ������� ���������� ����������
����������, ����� ������ ��������.
������ JavaBeans �������������� bean-����� �������������
���������� Java �������, ����� ��������� �� �������� ������������ �������: ����
����������� ��� ���������; ����� �������� ����-����������; ����� �� ����
�������� (properties), ����� �� �������� ���� �������� ������ � ����� getXXX() � setXXX(�), ������ XXX
� ����� �� ����������� property. � JSP ���������� ����� �� �� �������� �
��������� Java bean-��� ���� ���� <jsp:useBean
� />. �������� ����:
������ <jsp:useBean id="userInfo"
class="com.nakov.example.UserInfo" />
��������� ��������� �� Java bean � ��� userInfo �� ����� com.nakov.example.UserInfo, ����� � �������� �� ������ ��������� �� JSP-��. ���� ���������� � ����� ������������ �� ������������ ������������ �� ����, ����� � �������� ���� �� ����� ���� ������� ���:
������ <% com.nakov.example.UserInfo userInfo = new
com.nakov.example.UserInfo(); %>
�� ������� �� ����������
������������ �� �������, ����� <jsp:useBean
� /> ���� ����� ������������ �����������. ���� �� ����
����������� � ���������� �� ������ �� �������� �� bean-����� ���� �������� �scope�. ���� ������ ���� �� ���� ��������
�������� (page scope), �������� ������ (request scope), �������� �������������
����� (session scope) ��� ������ Web-���������� (application scope). ���� bean
�� ������� ������ ��� ������� �� ����������, � ���� ���� �� �� ���������,
������ �� ������ �� �������, � ����� � ���������. �������� ��� �� �������� bean
� ������ �������� ����������, ��� �� �� ������� ��� ������� �� ���������� � ��
� �������� �� ������ JSP-�� � �������� � ������������. ������ �� bean-� �� ��
���������� ���� ������ � ������� �� ������������ � �� �� ������� ��� ������� ��
���� Web-���������� ��� ��� ������� �� �������. ��� �� �������� bean � ������
�������� �����, ��� �� �� ������� ��� ����� ����� ��������� � ������� �� �����
���� ����� � �� �� ��������� ��� ����������� �� �������, �.�. ���� bean �� ���
�� ���� ��������� �� ����� ������������� ����� �� Web-������������. ��������
request � �������� page ����� �� �������� �� ���� �� �� ������������ � �����
���� � ������� �� ���� ���������. Bean-����� � ������ page ����������� ����
���� �������, � ����� �� ��������� JSP-���������� � �� ���������� ���
����������� �� ������� ����������. Bean-����� � ������ request ����������� ����
������ ����� �� ������������ �� �������� �� ����������� HTTP ������, ���� ���
���� ������� �� �������� � �������� �� ���������������� ���������� �� �������
JSP-��.
�� ������ �� �������� �� ����
bean (�������� properties), ��� ��� JSP ����: <jsp:getProperty � /> � <jsp:setProperty � />. �� ��
������������ �� ��������� ������ �� �������� �� bean-�. �������� �������
��� <jsp:getProperty
name="userInfo" property="name" />
� ������������ �� ������
��� <%=
userInfo.getName() %>
� ����� ������ ���������� ����� ��
�����������, ����� �� ������ �� bean-� userInfo. ������� �� �������� <jsp:getProperty �/> � <jsp:setProperty � /> � ����, �� ��
� XML ������, ����� �� ����� ��-����� �� ���������� �� �����, ����� �� �
����������. ����� ���� �� ���� � ������������ �����������. ��� � ������ ��
�������� �� �������� �� ���� � bean:
��� <jsp:setProperty
name="userInfo" property="password"
��� value='<%=
request.getParameter("userPassword") %>' />
����������, �� � ���������� ��
�������� value �� ���� <jsp:setProperty
� />� ���� �� �� ��������� JSP ������, � �� ���� ����������
�����.
������ ���� �� ��������� ����, ��
����� ���� �� �� ��������� ������������, ����� �������� JavaBeans ��������� �
JSP ��� �������������� Web-����������, � ����������� �� �������� �� bean-��� ��
���������, ��������� ��� ������ JSP ��������. ���� ���� �� ����� ���� ��������
�param� �� ���� <jsp:setProperty � />. ��������
�������� ���:
��� <jsp:setProperty
name="userInfo" property="password"
param="userPassword" />
������� � ������ password �� bean-� userInfo ����������, �������� �
���������� � ��� userPassword
�� �������� ��� ����������. ��� ����� �� ������ � bean-� � ������, �� �����
����������� ������������ � ����� �� ���������� ��������, ��������� �� �
����������.
������ ����� ���������� ���
������������ �� JavaBeans ��������� � JSP �, �� ���� �� �� ������ �����������
��������� �� ������ ������ �� ����� bean �� ��������� �� �������� ��� ������
�����. �������� ��� ����� bean-� userInfo,
����� ������� �������� name, password � age, ����� �� �� ������� �� ����������� ��� ����������
��������� ���� ������� ���:
��� <jsp:setProperty
name="userInfo" property="*" />
�� �� � ������� �����������, �
���������� ��� ���������� �� �� ��������� ��������� � ����� name, password
� age. ��� ������� ��
�������� � ������� �� ����������� ��������� �� ���������, ��� ����������� �����
������ �� ������� ��� ��������. ��� ����� �� ���� ��������� � ������ �� bean-�,
� ����� �� ������ �� �� �������, ���� ��� � ����� �������, ������ ��������
������ ���������� ��� � ���������� ����, ��������� �� ����������� �� ���� ���.
������ �� ������, ��������� �� �������, ����� �� �� �������� ������, �� ������������ �� Java bean-��� � ����� ������� �� �������� �� �������� �� �������������� � Web-������������. ���� ����������� ���������� �� JavaBeans � JSP-�� �� ���� ���������� �� Web-���������� �� ������� ���������� ������ �� ������ Web-����������, ��� �� ���� Java � ��� �� ������� ��������� �� JSP ��������������, � �� ����������� �� ���� ���������� �� ���� ����� �� ���� � ������� ������� (bean-���) ����� JSP-��, ���� ���� ����������� ���������� �� ����� ���, � �� ����� HTML ��������.
���� ������� ��� � JSP
���������� � ����� <%@ include
file="relative_url" %>. ��� ��������� ����������� ��
������������ ���� �� �������� ������� � ������ JSP ��������. ����������� �����
�� ����� �� ���������������� �� JSP ���������� � �������. ���� ��� � �������
�������� ������ Web-������������ ������� ����� JSP ��������, ��������� ����
���������. �������� ��� ������ � �������� �� ����� �������� �� ������
Web-���������� �� ��� ����, ����� ����� �� ������� ����, ����� ������� ����
���� � ������� ���� � �� �� ��������� ��� ����� JSP ���� � ���� <%@ include � %>. ���� ����������
��������� ���������� ���������� �� ���� �������� ��������� ��� (code reuse),
����� ��� ������ ������� � ����� ����� ���������� �������. �������� ���� � ��������
�� JSP ��������� �� �� ������ ������� ���:
��� <%@
include file="menu.jsp" %>
��� ������� ������������ �� �����
menu.jsp � �������� JSP �������� �� ����� �� ����������. ����� ���� ���, ��
��������� �� �������� ��� � �������� JSP �������� ��� � ��� ���� ������� ���: <jsp:include page="relative_url" />.
��� ��������� ���� <%@ include � %>
���������� ���� �� ������� ������ ��� ������� ���������� �� JSP-�� � ���� ����
���� �� ���� ��������, ��������� �� �� ��������� �� JSP-�� (static include).
��� ��������� �� ���� ���� <jsp:include
� /> ���������� ���� �� ��������� ��� ����� ������ ��� JSP
���������� � ���������� �� ���� �� ������ � ���������� (dynamic include). ����,
��� ���������� ���� ���� ��������, ��������� �� �������� � �� ������ JSP-��,
����� �� ��������. ����� ���� ���� <jsp:include
� /> ����� �� �� �������� ��������, CGI ��������� � �����
�������, �������� ���� ���������� URL, � �� ���� ��������� �� JSP ���������.
��� � ������ �� ��������� �� �������� �������� � �������� �� JSP ��������:
������ <jsp:include page="header.jsp" flush="true"/>
��������� flush=�true� � ������������ � ������
������ �� �� ������� ��� ���������� �� <jsp:include
� /> ����. �������� false �� � ���������.
��� ���� ������� ��� � JSP
��������� � ����� �� ������������ ��� ����� JSP <jsp:forward page="relative_URL"/>. ���
���������� �� ���� ���, ���� �������� �� �������� �� ������� �� �����
���������� �� ������������ �� ���������� URL. ��� ������ ������� �����
������������ ���� request.sendRedirect(�)
(browser redirection) � <jsp:forward �
/> (server redirection). ������� request.sendRedirect(�) ������ ����� �� �������� �� ������
���������� URL ������ ���� URL, ����� � �������. ���� ����� ���� �������� �����
������� � ��� 302 �� HTTP �������� (document temporary moved). ������
������������ � ������������ �� ���� ������������ �� ������ ���������� URL �
address bar-� �� �������� � �� �� ������. �������������� � <jsp:forward � /> ������ �� ����
�����. ��� ���� ��������� �� �������, �� �� ������� �� � ���������
������������, � ������ �������� ��������� �� ������������ �� URL-��, ��� �����
� ��������� ������������ � <jsp:forward
� />. � ����� ������ � address bar-� �� �������� URL-�� �� ��
�������.
�� �� ����������� ������ �������, � ����� �� ����������, �� ������� ���� �������� ������������������ Web-���������� � �� �� �������� � Web-���������� Tomcat. �� �� �������� �� ������ ������������ �� ����� ����� ����������� �����. ������������ ������ �� ��� ��� �������� � ������ �� ������� ��� ������, � ������� �� ������ �� ����������� � �������� �� ���� ���������. �� ������� ��� ������ �� ������� ������������� ��� � ������. ��� ���������� ��� ������� � ���������� ������, ��������� ������ �� ����� ����������� �� ���������� �� ������ � �������� �� ���������. � ���� �������� ������ �� �� �������� � ������� ������ ��������� � �� ��� ����� �� �������� �� ���� ���������. ����������� �� ������� �� ���� � ����������. �� ������� ����������� ����� �� �� ����� ���� � ������� �� ������������, �.�. �� ����� ��� ������������ �� �������. ��������� �� ������ �� ��������� ������ �� ������ �� ������������� ����, ����� �� �� ������ ���� ��������� ��������. ��� ��� �������� ���� �������� ������� �� ��������:
<%-- File name: login.jsp --%>
<%@
page contentType="text/html; charset=windows-1251" %>
<html>
<head><title>Login</title></head>
<body>
��� <%@
include file="header.jsp" %>
��� <div
align="center">
��� <%
��� String
userName =
������� request.getParameter("user");
��� String
password =
������� request.getParameter("pass");
��� if
((userName!=null) && (password!=null)
��� ���
��� && (userName.length()>0)
��� ���
��� && (userName.equals(password))) {
��� ���
session.setAttribute("USER", userName);
��� ���
response.sendRedirect("main.jsp");
��� }
��� if
(userName!=null) {
��� %>
������� ���������
�����. �������� ������.<br>
��� <%
��� }
��� %>
��� <form
action="login.jsp">
������� <input
type="text" name="user"><br>
������� <input
type="password" name="pass"><br>
������� <input
type="submit" value="����">
��� </form>
��� </div>
</body>
</html>
<%-- File name: main.jsp --%>
<%@
page contentType="text/html; charset=windows-1251" %>
<%@
page import="java.util.*" %>
<%!
��� private
String getMsgsHtml(ArrayList msgs)
��� {
������� if
(msgs.size() == 0) {
����������� return
"���� ���������.";
������� }
������� String
resultHtml =
����������� "<table
border=1 width=100% " +
����������� "cellspacing=0><tr><td>����</td>"
+
����������� "<td>���������</td></tr>\n";
������� for
(int i=0; i<msgs.size(); i++) {
����������� Message
msg = (Message) msgs.get(i);
����������� resultHtml
= resultHtml +
��������������� "<tr><td>"
+ Utils.htmlEscape(
��������������� msg.getSubject())
+
��������������� "</td><td>"
+ Utils.htmlEscape(
��������������� msg.getContents())
+
��������������� "</td></tr>\n";
������� }
������� resultHtml
= resultHtml + "</table>\n";
������� return
resultHtml;
��� }
%>
<html>
<head><title>View
Forum</title></head>
<body>
��� <%@
include file="header.jsp" %>
��� <div
align="center">
��� <%
��� String
userName = (String)
������� session.getAttribute("USER");
��� if
(userName==null) {
��� %>
������� ������
������ �� ���� ��������.<br>
������� ����
<a href="login.jsp">������</a>
������� �
���������.
��� <%
��� }
else {
������� ArrayList
msgList = (ArrayList)
����������� application.getAttribute("MESSAGES");
������� if
(msgList == null)
����������� msgList
= new ArrayList();
������� %>
������� <%--
Add the new message if any --%>
������� <jsp:useBean
id="msg" class="Message" />
������� <jsp:setProperty
name="msg" property="*" />
������� <%
����������� if
(msg.getContents() != null) {
��������������� msgList.add(msg);
��������������� application.setAttribute(
������������������� "MESSAGES",
msgList);
����������� }
��� ��� %>
�������
������� <br>
������� <%--
Print all the messages --%>
������� <%=
getMsgsHtml(msgList) %>
������� <br>
�������
������� <%--
Add new message form --%>
������� <form
action="main.jsp">
������� <table
border="0">
������� <tr><td>����:</td><td>
������� <input
type="text" name="subject">
������� </td></tr>
������� <tr><td>���������:</td><td>
������� <input
type="text" name="contents">
������� </td></tr>
������� <tr><td> </td><td>
������� <input
type="submit" value="������">
������� </td></tr>
������� </table>
������� </form>
��� <%
��� }
��� %>
��� </div>
</body>
</html>
<%-- File name: header.jsp --%>
<table
border="0" bgcolor="#66CCFF" width="100%">
<tr><td
align="center">
����
����� - (c) ������� �����, 2002
<%
��� String
currentUser = (String)
������� session.getAttribute("USER");
��� if
(currentUser != null)
������� out.write("
- ����������: " +
������� Utils.htmlEscape(currentUser));
%>
</td></tr>
</table>
// File name: Message.java
public
class Message {
��� private
String mSubject;
��� private
String mContents;
���
��� public
String getSubject() {
������� return
mSubject;
��� }
��� public
void setSubject(String subject) {
������� mSubject
= subject;
��� }
��� public
String getContents() {
������� return
mContents;
��� }
��� public
void setContents(String contents) {
������� mContents
= contents;
��� }
}
// File name: Utils.java
public
class Utils {
��� public
static String htmlEscape(String s) {
������� StringBuffer
out = new StringBuffer();
������� for
(int i=0; i<s.length(); i++) {
����������� char
ch = s.charAt(i);
����������� if
(ch == '\'')
��������������� out.append("'");
����������� else
if (ch == '\"')
��������������� out.append(""");
����������� else
if (ch == '<')
��������������� out.append("<");
����������� else
if (ch == '>')
��������������� out.append(">");
����������� else
if (ch == '&')
��������������� out.append("&");
����������� else
��������������� out.append(ch);
������� }
������� return
out.toString();
��� }
}
�� �� �� ������ ������������ �� �������� ���
Tomcat, ������ �� �� ������� ��������: �� �� ������� ������������� � ��� forum � %TOMCAT_HOME%/webapps � � ��� �� �� ������� ������ JSP
�������. � ������ ���� ���������� forum
������ �� �� ������� ������������� � ��� WEB-INF,
� � ��� ������������� classes.
����������, �� ��� �������� ����� ����� � ������ �����, ������� ��� ������
������ Web-���������� �� ������ � ��� Linux. � ��������������� classes ������ �� �� ������� ������ Java
������� � �� �� ���������� �� class
�������. ���� � ������, ����� � ���������� �� ���������� �� ������. �����������
�� ������������ �� � �������� ��������, � �� ������ �� �������������� �� Web-����������
�� ��������� �� J2EE. ��� ������������ ���������, �� ��� ������������ forum �� ������ ������ ��� �������� �
������������� �� ���� Web-���������, ������������ �� �������� �� ����� �����.
���� ���� �� �������� �������� Tomcat, ������������ � �������� �� ����� http://localhost:8080/forum/login.jsp.
��� � ������ �� �������� ����� (login.jsp):

���� ������� ������� ��� ������, �� ���������
�� ������ �� ����������� � �������� �� ��������� (main.jsp):

������ �� ���������� ��-�������� ���� �� ������ ��������
Web-����������. ��������� �������� login.jsp
������� ��� �������� �� content-type-� � ������ �� �������, ����� �� ��
��������� ��� ��������� �� ����������. ������� � ������������ ������ �������
windows-1251, ����� � ������������, ���������� � �������� �� ������ � ��������
��� Windows. ���� ������ ������� �� �������� �� ������ ���������� Web-��������
� ������ ���������� � ���������� �� �������� �� �� ������ �������� ��� �� �
����� ������������ �� ������ ������� ������������ ���������. ������ ����������
������ �� HTML ��������, ���� ����� �������� �� ������� ������ header.jsp. ���� ���� �� ������� �
�������� �� ����� �������� �� ������������ � ����� �� ������������ ��
���������� �������� ����, � ����� ���� ����� �� ������������, ����� �� �������
���������� � ��� ������� ����� ������������ ����������. ������ ��������� ��
����������� ������������� ��� � ������, ��� �� ��������� ������. ������ login.jsp ������ � ��� �������� � ���
��������� � � ���������, �� ���������� ��������� ������� ������. ��� ��
��������� ������������� ��� � ������, �� �� ��������� (�� �������� ������ ��
��������� ���� �������� � �� �� ������ ������) � ��� ����������� � �������, �
������� �� ������� ����� �� ����������� ���������� ��� ���� �USER� � ��������� �� ������� �� ��������
��� ��������� �������� �� ������������ (main.jsp).
��� ����������� � ���������, �� ��������� ��������� �� ������ � �� �������
������� �� ��������� �� ���������� � ������. ��� main.jsp �� ������ ��� ���������, �� ������� ������ �����
�� ��������� �� ���������� � ������, �� ��� ������� ���������. ���� ����� �
��������� �� ������� �������, �������� �� �����������, ��� ������ ��������, �
����� �� ������ ������ �� (index.jsp).
���� ������������ ���� �� ����� �������������� ����� ����� �� ������� �
���������, �� ������� �� �������� �������� �� ������ ���� ��� �������
���������. ��� ��� �� ������� �� ����� � ������ �������� URL-�� �� ���������
�������� http://localhost:8080/forum/main.jsp,
��������� ���� �� �� �����, ������ ���� �� ������ ��� �� ����������, �������� �
������� ��� ����� �USER�.
������ ���� ���� ���������� ��������
�� ������������ � �������� �������� main.jsp.
�� ���� ���� �� �� ���� � ��������� ��� ��� ���������. ��� �� ������ ���
���������, �� ������� ������ ��������� �� �������. ��� �� ������ � ���������
���� � ���������, �� ������ ���� ��������� � ������� ��� ����������� � �������
���� ������. ������� �� login.jsp
������������ �� ������ �������� �������, ����� ��������� ���������� ���������
�� ����������. ���� ���� �� ������� ���������� ���� �� ���������� ���� ����������
��������� �� ����� header.jsp.
������ ������� �� ����� �� ����������� ���������� �� �������� �����. ���� ��
����� ���� �� ������� ���������� �������� ��� ���� � ��� �USER� � �������. ��� ������������ �
�������� ������� ���� login.jsp,
�� �������� ������ �������� �� ���. ��� ������������ �� � ���������, ������
�������� ���� �� ���, �.�. �� �� ������ �������� null. � ���� ������ ������������ �� ��������� �� ����
����� �� ������ � �� �������� �� ����� � ��������� ���� ��������� ��������. ���
������������ � ���������, ��� ��� ������ � ��� ��� ���������� � ���������
������ �� �������� �� ���� ���������, ��� ���������� � �������� ��� ���������.
�� ��������� �� ����������� �� �������� JavaBean ����� Message, ����� �� ���������� � ���� <jsp:UseBean � />. ���� ����
����������� �� �������� � bean-� ���� ��������� �� ����������� ����������� ��
��������� � ���� <jsp:setProperty �
/>. ����������, �� bean-� Message
��� ������, ����� ����� ������������ �� ������� �� ���������� ���������. ��� �
����� �������� ��������� �� ���������� �� ���������, � ������ contents �� bean-� �� ��� ��������,
�������� �� null. ���
���������� � null, �� �����,
�� ���������� � �������� � ��� ��������� �� ������ ���������, � �� � ���
�������� �� ���� ���������. �� ���������� �� ����������� � ������������ ��
�������� ������ (java.util.ArrayList),
����� �� ��������� � ������������ ��� ���� �MESSAGES�.
����������, �� �������� ��� ����������� �� ��������� � ������������, ����� ��
����� �������� �� ������ �����������, � �� �� ��������� � �������, ����� �����
�� �������� ����������. �������� � � ������������ �� ���� ���� ��� ��� �MESSAGES�. ���� ��������, �� ��� ���
����� ���������� �� � ������� ������� ���������. ��� ������ ��� ��������� ����,
��� �� ������� � ������������ � ������. ���� ���� ��� � ��������� ����
��������� ���� ���������, �� �� ������ � ������� � ���������� ��� ��� �MESSAGES� � ������������ �� �����������.
���������� ���� � �������� ���� ��������� ��� ��, ������ ��������� �� ��������.
�� ����� �� �������� ���������, ���������� ���� JSP ���������� � ���� <%! � %>. �� ����� ���� ���������
������ �� ��������� � ����� ���� �������� HTML �����, ����� ������������
������������ �� ���� ��������� ��� ��� �� �������. ���� ���� �� ��������������
�� ����������� � JSP ���������� � ����������� HTML ������� �� �������� �� ����
���������. ���� ����� ������� ���� ��� ������ � ����� �� �������� �� ���������,
����� ������� �������, ��������� �� ����������� ��� ������ JSP �������� (main.jsp). ����� ���� ���������, ����
��������� �� �������� � bean � �� ���������� �� �������� ����� ���� ����.
������ �� ������� ��� �� ������������ ����������� ��� ��� �� HTML. ������� getMsgsHtml(�), ����� �� ��������� ����
������ �� ����� �� JSP ���������� main.jsp,
����� ��������� ���� ��������, ����� �� � ������� ���� ��������� �� � ������.
��� � ������, ����� ��������� ���������, � � �������� ������ ������� ������� �
������� � ��� ���������� �� ������� ��� ����������� ����������� for-�����. ����
����� ����� ����, ����� �� ����� ��� ������������� �� ����������� � ���������,
����� �� ��������, � �� �� ������� ������������� �� HTML ����������� ������� �
������ ���������� � HTML (HTML escaping). ����� ������ �� ������� ���� <, >,
& � ����� �����, �����
����� �� �������� HTML ���������, ��� �� �������� � ���� ��� �� �� escape-���.
�������� ��� ����� ������ ��� ������ ��������� ��� ���������� �</td></tr></table>������!�,
���� �� ������� ��������� � �� ���������� ������ �� ����� ����� ���. � HTML ���
��������� ����� �� ��������� �� �������� �������, ������� HTML escaping, �����
������ �� �� �������� ������, ������ �� �������� ������, ����� ���� ����� ��
�������� ������ �������. �������, �� ���� ������� �������� ����� � 100% ��
Web-������������, ������������ � Java, � JSP/Servlet API-�� ���� ����������
�����, ����� �������� HTML escaping. ������� � �� � �������, ����������
���������� �� PHP ��������� html_escape(�)
���� � ��� ������ ���� �� �� �� �������. ���������� ���� ���������� ���� java.net.URLEncoder, �� ��� ����� �� ����
��� escaping � URL escaping, ����� �� �������� �� �������� �� ������������ ���
��������� �� HTML �����. �� �� ���� �� �� �������� �� ������ JSP-�� ��
������������, ���� ����� � ��������� ���� �������� � ������� ���� � ��� Utils.
��� ������ �� �� ������ HTML escaping, ����� � ����� ��������, ��� ������ Web-����������,
����������� �������� ������ htmlEscape(�),
����� � ����� � ���� �� ����-��������, �� �� �� ������ ����� �� �� �� ������
���� ��� �� �� ������� � ��������.
�� �������� ��-���� ������
������������ �� ����� header.jsp,
�������� �������� �� ���, ����� � ������������ �� ���� � �������� �� �����
�������� �� ������������. � ���� ��� �� ��������� ���� � ������� ���
����������� ���������� � ��� ���, ����� ������������ �������� �����, ��
��������� � ����� �� �������� ����������.
���������� ���������� ��� ����� ���������� ��������������, ������ ������������ ��� ���� �� �� ���� ����� ������ � ������������ �� ��������� �������� ��-������ ���� �� JSP �������� � ��������� ������� � ���������� ������. �������� �� �������� �� �� ����� �� �� ������� � �������, ���� �������, �� ��� �������� ��������� �� ���������� �������� ������ ��������� ������������ � Java�, ���� ���� �� �� ��������.
� ���������� ������ �� ���������, �� JSP ������������ �� ���������� �� Web-���������� � ���� �� �������� � �������� ����� � � ��������� �� ��-����� �� ASP, PHP, Perl � ColdFusion. ��������� �� ��������� �� ��-�������� � ��-�������� ���������� �� �������� ������ JSP ������ Perl � PHP, ������ J2EE ����������� �������� �� ������ �����, ����� ���� ���� ���������� � ����������, ���������, ������������, ��������������, ������������ � �.�.