��������� � Web-�������������� � Java ��������
� ������� �����, 2000
� ���������� ������ � �������� �� ������� �������� �� �������� � WEB-������������ ������������ �� ��������� WEB-�������� ����� ��������� ���� �� ������������ �� ����� WEB-����������� ������������� �������. ���-���� ������� �� ����������� � ����������� �� ���������� �� ������������ ���� ����� ���� WEB ������ �� �������� �������� �� WEB-�������������� ���� ����. � ���������� ������ �� ���������� ������ �������� ��������� ������ �� �������� �� ��������� ���������� � WEB, ���� �� ����� ��-�������� �� ���� ����������� ���� ���������� � JAVA ����������.
���� �� ������� ������� ���������� � �������� �� ���������� �� �������� � ��������� ���������� � ����� ���������� Common Gateway Interface (CGI). ���� CGI web-�������� ������ ������ �� ������ ��������, ����� �� ��������� �� �������. ������� �� ���� �������� �� ������� ��� ������� ���� �������� �������� ��� ���� �� ��������. ������� �� CGI � ������������ �� ��������� �� ������ ������ �������������� ��� ��������� ���������� web-�������� ���� ���� ������ ������ �� ���������� �������. ������ �������� �� ����������� � ������� �� ���������� CGI ����� �� �������� � �������� �� �������� web-�������, ���� �� ���������� ���� ���������� ��������� �� ����������� ����� ������� � ������ ��������� ���������� (server-side applications). ������ ����������� ������� ������� ������ �� ������ �� CGI-��������, web-�������� ������� ��� ������ �� �� � ������� � � ������ ����������� ���� ���������� �� ������� ��� ����������� ����. ���������� ��������� �������� � ����� ���������� �� ����������� �����. ������ �� ���� ����� ���������� � �� ����������� �� ��� ������ � ����� �������� � ������ ���������� ������� ��������� �������. ���� ��������� �������� ����� ����� � ����� �������, ����� ����� �� ����� ��������� � ���� � ���� ����� ��������. ������� ���� CGI-���������� ����� �� �� ������� �� ����� ������ ����� �� ������������ � ���������, ����� �� ��������� �� ������� � ������������� �������. � UNIX-����� ���-����� �� ��������� Perl-���������, SHELL-��������� � �������� �� C, ������ ��� WINDOWS ����� �� �� ��������� � ���������� ��������� �������� �� C++, DELPHI, Basic � �.�. ������������ �� Perl ��������� ���������������� ����������� �� ����, �� ������ �� ���������� ����� web-������� � ����������� �������� �� � �����, ������ �� �� ������� �������.
�� ����������� �� ��������� �� CGI-������������ �� ������� ���� �������������� ����� � FastCGI. FastCGI � ����� ���� CGI, �� �� ������� �� ����, web-�������� �� ������� ����� ��� ������ ��� ������ ��� CGI-��������, � �������� ������������ �������� ��� ������� ������, � ���� ���� � �������� ��� �� ������� ��� ������. ������� �� ���� ���������� �� CGI ������������ � ������ � ���������� ������, �� �� ������ ����� �� ����������. ��� ������ �� ������� ������� ��� ���� � ���� �������� ������������ ������ �� ������ ���������� �� ������� �������, � ����� ���� ������������ � web-������ ������ �� � ����� �����.
���� ����� ������� �� ���������� � ����������� � ���-���������� � ���-����������� web-������ � ����� � Apache (�� �������� ����� � Apache ������� ������ �� 60% �� ������ web-������� � �����). Apache ��� ���������� �� ������ � ���� �� �������������� �� Perl, ���� ��������� �������� ��������� � ������������. ����� ����� Perl � ����� ����� ������-���� �� ��������� �� server-side ���������, ����� � ���������� � ���������� ��������� �� ���� ���. ������������ � �������� ���� mod_perl � ���������� ������ �����������.
���������� �� ����� � ������ ������� ���-����� �� �������� ������������ ������������ �� �������� ������ � ��: Linux, �� ��-���������� SunOS ��� ���� UNIX, web-������: Apache � mod_perl ��� PHP, ���� �� �����: MySQL, PostGre, � �� ��-���������� ORACLE.
���� ���� �� ����������� �� ������������� �� CGI/Perl ����������� � ������������ �� PerlEx �� WINDOWS NT, ����� �������� ���� ��������� Perl� � web-�������.
���� ������ �������� ������ ���� �� �� ��������� ���������� ����������, ����� �� ��������� �� ����� web-�������. ����� ������ �� Netscape NSAPI, Microsoft ISAPI � �����. ���� ���������� ���������� �� �� ������� ���������������� �� web-������� ���� ��������� �� �������� ��� � ������� �� ����� ������, ����� ��� ����� ���������� ���� �� ������������ ������ �����������, �� ����� ���� ���� � �� ������ �� �����������. ���������� ������ �������� �� ����� �� C/C++ � �� �������� ���� DLL ���������� � ������� ������������ �� �������. ��������� �, �� ��� �������� �� ���� ������ �������� ������-����������, �������� �� ������ ��� �������� ������ ������ � ������ �� �� ����������. ���� �������� ���� � ����� �������� �������.
����� ����������� �� CGI � ������������ Active Server Pages (ASP) �� Microsoft. ASP ��������� ��������� �� ��������� web-��������, ���� �� ����� ������ ���, ����� ������� ����������� ���������� �� ������� � HTML ����������� � �� ��������� �� ������� ����� �������� �� ������ ����������, �� ����� � ��� ������. ���� �������� �� �������� ����� ���� �� Microsoft Internet Information Server (IIS), ����� ��� ������ �����, �� � ����� �������� � ����� ���������. ������� ���� ���-����� ������ 5.0 �� IIS ���� �� �� ����� ���� �� �������� (��� ��� www.microsoft.com ������ � ���). ���� 20% �� ��������� � �������� ������� � IIS.
������� ���������� �� ���������� �� �������� � ��������� ���������� � PHP. PHP � ������������ �����������, ����� ��������� �� �� ����� ��������� � HTML �����������. ��� �� ��������� ��� web-������� � ������ �������� ���� ������ �� ����� ��������, �������� � �����, �������� ������ ��������� � ��������� �� ������������ �� � ����� ������������ �� ���� ����� ��������� ��������. ������� �� �������� � ������ �������, ������ ����������� �� ������������� �� ������������ �� PHP ��� �� �� ����� ��� ������. ������������ ��� ������� � �����. PHP � ������������ ���-���� �� ������� Apache, ������ �� ��������� ���� ����� ������� �� mod_perl. ���������� ������� �� PHP �� IIS, �� ��� � ���������� ���� CGI-�������� �, ������� ��, � ��-�����.
Netscape Enterprise Server �������� server-side JavaScript ���� ����������� �� CGI � ASP. ���������� � ������. ���������� ��� �� ������� ������� � HTML ��������� � �� ������������ �� �������.
����� ������� ����������� � Cold Fusion. ���� ��������� ������ � HTML ����������� �� ������� ��������� ������-���. ����������� �� ������������� �� Application-������� �� Cold Fusion, ����� �� �������� �� �������� ��������� web-�������. ������������ �������� ������������ ����� � ����� ������ �� ���� �� �����, ��� �� �� ������ ����� ������ �� ���.
������ ������ �� ��������� �� ��� � HTML ��������� � ����������� � JSP (Java Server Pages), ���� �� ����� �� ���� �� JAVA, ����� ���� ������ ��������� �� ������������, �� ������ �� ������ ������. ������ �� JSP ������ � ���� �� ��������.
������������ �� JAVA ���� server-side ���� �� ������������ � �������� �� ���������� �� ��������� web-�������� � ���������� ������ �������� ����� �������� � ���� ������ �����������. ���� �� ������������, ����� �� ��������� � �������������� � JAVA ��������. ����� ������ �� �������, �� ���������� �� �� ������. �������� �� �������� �� JAVA, ����� �� ���������� �� �������� �� ������� �� ������� web-������� ����� � ����� HTML ��������, ����� ��� ���������. �� ������� �� ��� JAVA ���������� �� ����������� �� CGI, ����� �������� ����� �� ���������� �� ��������� HTML �������� ���� �������� �������� �� JAVA, ����� �� ���������� �� �������. ��������� ������������ ���������� JAVA ���� (�������� �� JAVA), ����� ���� � ��������� ���������� �� ������� � �� ������� �� ���������� ������� ���� ������ �� ���������� �� �������� ��� ���� submit-���� �� HTML �����. ��������� ��������� ���������� �� ��������� � ����� ���� �������� ��������� ��������� HTML ��������. ���������� � ������� �� ����������� �� �������� ���� CGI, �� �� ������� �� ���� � ��-����.
�� �� ���������� ��������, �� � ��������� ������, ����� �� �������� (Java Web Server, Netscape Enterprise Server � ��.) ��� ������ �� ����������� ��������� ���������� (plug-ins) ��� �������, ����� ���������� (������ �� �������� �� �������� ��������� web-������� ���� Apache � IIS).
����� ������ JAVA, ���� � JAVA ���������� �� ����������� � ��� �� �������� �����������. �� �� ��������� �� ������ ���������, ����� ��������� JAVA. ���� ����������� �� Java Software (������������� �� Sun Microsystems) �� �� ���������� �� ���������� ��� ����������� ������ �� JAVA ���������� ���������� � ������� JDK, �� �� �� ���� �� ���. ������������ �� ��������� �� �������� �� ������ JSDK � � �������� �� ��������� �� http://java.sun.com/products/servlet/. ��������� �������� �� ������������ �� �����������, �������, ������������, ����������, ������������, ����������. �� ������ ������� �� ���� �� �� ������, ������ ������ JAVA �� ������� �� ������������ �� ����������� ������, � ���� ������ � ����� ����� � ��������� � ����������� �� �������� ��� ��������. ����� ���� ������ JAVA � �� ��-������ ���� � ��������� � C++ � ����� ����� �� ������������, �����, ������� ��, �� ����� ����� ��-����� �� ���. ���������� �� ������ �������� �� ��-����� �� ���������� �������� ���, ������ �� �������� �� JAVA, ������������ �� ������� � ����� ��������, ������ ���������� �� �������� � ������� �� ������� ���� ����� ������, ��� ������� �� ���������� � ���� ���� ���� �� ��������, ����� ����� ����� ����������. �������������� ����������� �� ������� ������ ��� ���� � ��� ������� �� �������� � ������� thread-��� ������������. ���������� �� ������� ���������. ������ �� ������������ �������� �������� ��� Windows NT � JDeveloper � �� �� �������� � Java Web Server, � ����� �� �� ��������� ��� �������� �� ���������������, �������� UNIX ������� � Apache. ������ ��������� �� ����� JAVA, ������ �� ��������� ������, ����� �������� � �� ���-����� ����� �� ������������ �� ��������� ���������� �� ������ �� ���������� ����� ��� ����������� ����������� ������ �� �����. � ���� ������ JAVA ���������� ������������ ������ ���� �� ���������� ����������� �� web-������������ ���� Perl, PHP � server-side JavaScript. ������� ������������ � �����������, ���� �� �� ����, �� ���������� ���������� ������ ��������� � ����������, ����� ���� �� ����� ���� JAVA, ����� ��������� ���� ��������. ����� ������� JAVA ������� �� ���� �� ���� ��������� �� ������������� ���������� � �������, ������ ������ ���� �� CGI ����������, ����� �� ����������� �� �������� ��� ���� ����� �� �� ������� (�������� ���� ������������ ������� �buffer overflow�) � �� �� ��������� ��������� �������� ���������� �� ��������, ���������� �� ������ ��� ���������� �� ����� ���������� (�������� �������� �����, ������� ���������, ������ � �.�.). ������� ������������ ����� �� �����, �� ������ ���������� �� ���������� �������� �� �������, �������� � ���������� ����� �� �� ����������� �����, ������ � �������� ������ �� �� ���� ����. ������������ � ����� ����������. � ������������ �� ���� ������������ ������� � ���� ����������� �� Servlet API-��, ���� �� �� �������� ����������� �� ������ ���������� � ���������, ����� �� �� ������ � ������.
���� �� ��������� ��� �������� ���� ����� JAVA �������:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet {
�� public void doGet (HttpServletRequest req, HttpServletResponse resp)
������������������ throws ServletException, IOException {
resp.setContentType("text/html");
ServletOutputStream out = resp.getOutputStream();
out.println("<HTML>");
out.println("<HEAD><TITLE>Hello World Servlet</TITLE></HEAD>");
out.println("<BODY>");
out.println("<H1>Hello, World!</H1>");
out.println("</BODY></HTML>");
�� }
}
���� ������� ��������� � ��������� ����������� �� JSDK ���� HttpServlet. ����� ���, ������ �������� ������ GET-������ �� ������ �� ��������, ��� ������� doGet() ������ ��, ���� �� ������ ������ HttpServletRequest � HttpServletResponse, ���� ����� ��������� ���� �� ����� ����������� �� �������� � �� ������� �������� �� �������. ��������� ��-���� ������� �������� ����������� � ����� ��������� ��������� HTML ��������, ����� �������� �� ������� �����:

�����������
���������� ������� ����������� ��������� � ����� �� ��������� �����������. ��� �������� ���� ���� ��� �� ����� � �� ����� ��������. ��������� �� ������� �� ���������.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
�� public void doGet (HttpServletRequest req, HttpServletResponse resp)
������������������ throws ServletException, IOException {
resp.setContentType("text/html");
ServletOutputStream out = resp.getOutputStream();
String name = req.getParameter("name");
out.println("<HTML>");
out.println("<HEAD><TITLE>Hello Servlet</TITLE></HEAD>");
out.println("<BODY>");
out.println("<H1>Hello, " + name + "</H1>");
out.println("</BODY></HTML>");
�� }
}
��� � ���������� �� ������������ �� � ��������� �Svetlin Nakov� :

� INTERNET ����� �� ������ HTML �����, � ����� ������������ ������� ������� ���������� � � ������ �� �������. �������� ��������� ������� ������, �������� ��� �������, ����� ��������� �������� � ����� ��������� ���������� �� ���� �������� �� �������. ��� ���� ������ ��� ����� ����� �� �� �������� ������ HTML �����:
<HTML>
<HEAD> <TITLE> Hello Form </TITLE> </HEAD>
<BODY>
<FORM METHOD=GET ACTION="/servlets/HelloServlet">
Please enter your name:
<INPUT TYPE=TEXT NAME="name">
<INPUT TYPE=SUBMIT VALUE="OK">
</FORM>
</BODY>
</HTML>
��� � ����������, ����� ������������ �����:

��� ��������� �� ������ �OK� �� ������� ��������� �� ������� �� ��� � �� �� ������ ���������� �name�, ������� � ������ �� ���. � ����� ������ ����������� �� ���� ����� � ������������ �� ��������� �� ������ http://localhost/servlets/HelloServlet?name=Svetlin+Nakov. �� ������� �����, ���� ���������� �� HTML �����, �������� � ���� �� �����, ���� �� �� �������� ������ ������������� web-�������� �������, ����� ������������ ��� ������ � �����������. ����� ������� ��������� ��������� ��� <SERVLET>, ���� �� ���� ����� ���������� ��������� �� ������� �������� �� HTML ��������. ���� ���������� ��������� � ��������� ����������, ���� ������� ���������� �� ��������. ����� ������ �������� �� �� ���������� �� ������ �� webmaster-�, ����� ������� .html ���� � ������������� ���������� ������ �� HTML ���������. ������ �������� �� �� ����������� �� ������� � ����������� �� ����������� ���������� �� �������� �� �����������, ����� ������ �� ����� ��� HTML ��������, ����� ���� ���� ���� �� ����. ������������ ���� ����������, ��������� � �� .class ���� � � ������� � ����������� ���������� �� �������. �������� ��� ��� ����������, ������ ����� ��������� ��-����, ��������� �� ������� ���� ������, � ���� ���� �� ������� �� ������� �� �������. � ���� ������ ��� ������������ ������� ��������, �������� ���� �� �� ������� ������ � ��������� ���� �� �� �������. � ������ ������ ������������ ������ �� ���������� ��� ����� ������ ��� ���� ������ �� ����, ����� �������� ���������� ���, ��� �������� ���������, ���� ��������� �������. ��� � ���� ������ �� ��������� �� <SERVLET> ��� � HTML ��������. ���� ������ �������� �� ����� �test.shtml�. ���������� ������������ �.shtml�. �� ��������� �� �������, �� ���������� ������� ��������, ����� ������ �� �� �������� � �� �� �������� � ��������� �� ���:
<HTML>
<BODY>
This page is visited
<SERVLET CODE="CounterServlet"> </SERVLET>
times.
</BODY>
</HTML>
��� � ���� �� CounterServlet �����������, ����� �������� ������ ������ (� ����� ������������) ����������� �� ������������:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet {
�� static int count = 0;
�� public void doGet (HttpServletRequest req, HttpServletResponse resp)
������������������ throws ServletException, IOException {
resp.setContentType("text/html");
ServletOutputStream out = resp.getOutputStream();
out.println(++count);
�� }
}
����������� ���� �� ����������� ��-�������� ������������� �������������� � JAVA ��������, ������ ����� �� ���������� ������ � �� ������� ���������� � ������������, ���� ���� � ����� �� ��������, ��� �� ������� �� ���������. ������ ������������ �� �������������� � JAVA �������� ������ �� �������� ���� �������� �������� ������:
www.servlets.com, developer.java.sun.com/developer/onlineTraining/Servlets/Fundamentals/index.html
�� ��� ��������� ���� �� ���-������� �������� � ����������� �� ��������. ���� ����������� � �������� �� �������� �� �� ���������� �������� ������ �������� �� ������� � �������� �� �����������. ���������� �� ���������� �� ������, ����� � �������� �� ������ � ��������, �������� Apache (http://www.apache.org), ����� ��� ����� ������. �� ���������� �������, ���������� ����������� �� �������� �� ���������� � ��������� ���������. �������� � ���������� ��� � ��� ������ �� ������� �� ���� �� �����. ��������� ������ �� ������ � ��������� ��������� �� ������� � ���������� �� ������. ������ ��������� ������� �� ���� �� ����� ��������� ��������. ������ �� �� ��������, �� ���������� � �������� �� �� ������� ���� �� JAVA ����������, � ���� � �� ������ ���� �� ��������� � ������������, ����� ��������� ��������� HTML. ����� � �� �� ��������, �� ��� ��������� �� ����������� ��� �������, ������������ ���� �� �������� �������� ��������� �������, �� �� ��������� ���������� � ��������: [1]
��� String name = request.getParameter("name");
��� try {� // Decode the cyrillic parameter value
������ name = java.net.URLDecoder.decode(name);
��� } catch (Exception e) {}
� ������������ �� ���� ��� �� ������� ���������� ����������� �� ���������� �name�, ���� �� �������� ���������� � ���������� � ����� ���������� ������.
� ��������� ������ �� ��������� ���� � ��������� �� �� ��������� JAVA �������� � ���� � ��-����� �� �� ��������� ����� ����������. ���������� �� ���������� ������ ������� � ��������������, ������ ��������� � ����������, � ���� � �����������. ��������� �� �� ������ �������, ������ ������ �� �� �������� ������ ��������� �� �����, �� �� �� ������ ����������� ��������� ��������, � ���� � ������ ������������ � �� ���������� ��������. ������ �� ���������, �� ���� �� ������ ���� �� JAVA ������ �� �� ������ ����� ��������� ���, �� ������� �� ����� ����� ����� �� ������������, ��������� �� web-����������. ���� �������, �� JAVA � ���� � ����� ���� ��� �����������������, ����� �� ����������, �� �� ����� � ������ ��������� � ��-�������� Perl ��� PHP. ������ ����� ������ �� ������ �� ���� �� �����, JAVA ���������� �� ������� �����, �� ������ ���� ����� ������ ���� � ����� ������ �� ��������� ���, � ��������� � ��������������� ��������� �� ���� �������� ����������, ���� �������� ColdFusion � Oracle Application Server. ���� �� �� ������ ���� �� ���� ������ �� ���������� ����������� ����������. ���������� Sun �� ������ �� ������ Java Server Pages (JSP) ������������ � ������� ��� �����������. ����� ���� ����������� JSP ������������ ��������� ��������� �� JAVA ��� �������� � HTML ��������� ����������� ��������� ������. ���������� � JSP �� ���������� �� ��������� JSP-engine, ����� �� �������, ����������� �� � JAVA ���� ���, ��������� �� � �� ���������. ��������������� �� ������� �� ����, �� ���� ������ �� �������� ���������� � ��� ������� ��������� �� ���������� � JSP ���, � ���� ���� ������������� JAVA ��� �� ��������� ���� �������� JAVA �������. ���� ���������� �� ������������ � �� ��� ��� HTML ������� �� ������� ���� ��������� � ���������� ���, � �� � � ���� ���. ����, �������� � PHP, � ���������� ���� ������������ �� ���������� �� ���� HTML ����� � ��������� ��������� ��� � ���� � ��� ����.
���������� ����������:
1. Hunter J., �Java Servlet Programming�,� O�Reilly, Sebastopol, USA, 1998
2. Zeiger S., �Servlet Essentials�, http://www.novocode.com/doc/servlet-essentials/
3. Fischer D. �Oracle Java Roadmap: Java Servlets�, http://technet.oracle.com/tech/java/servlets/