Applets and Servlets
Александр Кораблин
1
- 
java.applet.Applet   (AWT)
- 
для графических приложений
 
- 
javax.swing.Japplet  (Swing)
2
The Applet Class
void destroy( ) - Called by the browser just before an applet is terminated. 
AppletContext getAppletContext( ) - Returns the context associated with the applet.
String getAppletInfo( ) - Returns a string that describes the applet.
AudioClip getAudioClip(URL url) - Returns an object that encapsulates the URL 
getCodeBase( ) - Returns the URL associated with the invoking applet.
URL getDocumentBase( ) - Returns the URL of the HTML doc that invokes the applet.
Image getImage(URL url) - Returns an Image object that encapsulates the image
					found at the location specified by url.
String getParameter(String paramName) - Returns the parameter associated with     	paramName. null  is returned if the specified parameter is not found.
void init( ) - Called when an applet begins execution. 
boolean isActive( ) - Returns true if the applet has been started. It returns
					false if the applet has been stopped.
void resize(int width, int height) - Resizes the applet according to the dimensions
void start( ) - Called by the browser when an applet should start
						 (or resume) execution. 
void stop( ) Called by the browser to suspend execution of the applet. 
Demo1
3
<html>
  <head>
    <title>Demo Applet</title>
  </head>
<body>
  <p>My applet</p>
  <applet code=“Demo1.class" width=“200" height="100">
     If your browser could show Java, you would see an applet here.
  </applet>
</body>
</html>
Другие атрибуты:
  align, vspace, hspace, alt, name (имя для скриптов)
  code=“com.myApplets.Demo.class”   -  имя класса аплета
  codebase=“URL for locating the class files”
  archive="MyClasses.jar,corejava/CoreJavaClasses.jar"
4
Передача параметров
<applet code="FontParamApplet.class" width="200"                   					     height="200">
	<param name="font" value="Helvetica"/>
</applet>
public class FontParamApplet extends JApplet
{
   public void init()			// только в init()  !!!
   {
		 String fontName = getParameter("font");
		. . .
5
Видео и звук
- 
Форматы:
- 
GIF,PNG, or JPEG
- 
AU, AIFF, WAV, or MIDI
 
- 
Image cat = getImage(getCodeBase(),"images/cat.gif");
- 
AudioClip meow = getAudioClip(getCodeBase(), 						     "audio/meow.au");
- 
play(getCodeBase(), "audio/meow.au");
6
The Applet Context
- 
public AppletContext getAppletContext()
- 
Applet ap = getAppletContext().getApplet(“name");
- 
Enumeration<Applet> e =  				  			getAppletContext().getApplets();
- 
URL u = new 								URL("http://java.sun.com/index.html");
- 
getAppletContext().showDocument(u);
- 
// void showDocument(URL url, String where)
 
- 
“_self” (show in current frame), “_parent” (show in parent frame), “_top” (show in topmost frame), and “_blank” (show in new window).
7
JAVA НА СТОРОНЕ
СЕРВЕРА: СЕРВЛЕТЫ
8
- 
1. Чтение данных, переданных пользователем.
- 
2. Получение прочей информации, переданной в HTTP-запросе.
- 
3. Генерация результатов.
- 
4. Форматирование результатов обработки.
- 
5. Установка параметров HTTP-ответа.
- 
6. Передача документа клиенту.
9
- 
Эффективность
- 
Простота использования
- 
Богатые возможности
- 
Переносимость
- 
Защита
- 
Низкая стоимость
10
Обзор сервлетов
GenericServlet
- 
javax.servlet   &   javax.servlet.http
- 
Apache Tomcat 6.0.20\lib\servlet-api.jar
Servlet
ServletConfig
ServletRequest
ServletResponcse
HttpServlet
&  Cookie
11
- 
import  j a v a x . s e r v l e t . *;
- 
import  j a v a x . s e r v l e t . h t t p . *;
- 
p u b l i c  c l a s s  ServletTemplate extends H t t p S e r v l e t   {
- 
p u b l i c void d o G e t ( H t t p S e r v l e t R e q u e s t r e q u e s t,
- 
H t t p S e r v l e t R e s p o n s e response)
- 
throws S e r v l e t E x c e p t i o n , lOException   {
- 
/ / Параметр r e q u e s t используется для чтения полей
- 
/ / заголовка, содержащихся в HTTP-запросе, и данных,
- 
/ / введенных пользователем посредством HTML-формы.
- 
/ / Параметр r e s p o n s e " используется для установки кода
- 
/ / состояния HTTP-ответа и полей заголовка.
- 
P r i n t W r i t e r out = r e s p o n s e . g e t W r i t e r ( );
- 
/ / Объект out используется для передачи данных броузеру.
- 
}
- 
}
12

13
Настройка контейнера-сервлетов
- 
Установка, например, Apache Tomcat
- 
Задаём путь к Tomcat  в О.С.
- 
CATALINA_HOME=C:\Program Files\Apache Software  					Foundation\Apache Tomcat 6.0.20
 
- 
Путь к JDK
- 
JAVA_HOME=G:\Program Files\Java\jdk1.6.0
 
- 
Путь к библиотеке
- 
CLASSPATH=C:\Program Files\Apache Software  			       Foundation\Apache Tomcat 6.0.20\lib\servlet-api.jar
 
- 
Запуск и остановка Tomcat
- 
Apache Tomcat 6.0.20\bin\startup.bat
- 
Apache Tomcat 6.0.20\bin\shutdown.bat
 
- 
Запуск сервлета
- 
http://localhost:8080/examples/servlets/servlet/HelloWorldExample
14
Установка сервлета в контейнер 
- 
Копируем файлы сервлета в каталог:
- 
С:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.20\webapps\examples\WEB-INF\classes
 
- 
Регистрируем сервлет в файле
- 
\webapps\examples\WEB-INF\ web.xml
- 
<servlet>
- 
<servlet-name>Example1</servlet-name>
- 
<servlet-class>SDemo1</servlet-class>
- 
</servlet>
- 
<servlet-mapping>
- 
<servlet-name>Example1</servlet-name>
- 
<url-pattern>/servlets/SDemo1</url-pattern>
- 
</servlet-mapping>
 
15
Web Applications

16
Структура Web приложения

If the servlets or other .class files are bundled inside JAR files, then the JAR files
should be placed in 
WEB-INF/lib.
Copy myWebApp to tomcat_dir/webapps
17

18
Состав JSP
- 
Текст шаблона: Статический HTML
- 
Элементы скриптов JSP
- 
Выражения, имеющие форму <%= выражение %>, которые обрабатываются и направляются на  вывод,
- 
Скриплеты, имеющие форму <% код %>, которые вставляются в метод service сервлета
- 
Объявления, имеющие форму <%! код %>, которые вставляются в тело класса сервлета, вне существующих методов.
 
19
Пример
Current time: <%= new  j a v a . u t i l . D a t e () %>
В результате в тело метода j s p S e r v i c e (вызываемого из метода s e r v i c e ) будут
помещены следующие строки кода:
out.print("Current time: " );
out.println(new  java.util.Date ());
20
Объекты JSP
- 
request – позволяет обращаться к параметрам запроса, типу запроса (GET, POST, HEAD, и т.д..), и входящим HTTP заголовкам
- 
response - объект связанный с ответом на запрос клиента
- 
out - объект типа PrintWriter, используемый для отправки вывода клиенту