Internet и CGI


§4. CGI-Java программирование. - часть 2


<APPLET CODE="cgi_java.class" codebase="/java_applets/" WIDTH="400" HEIGHT="330"></APPLET>,

где codebase - имя каталога, в котором содержится файл cgi_java.class.
Рассмотрим сначала Java-апплет:

import java.awt.*; import java.net.*; import java.io.*; import java.awt.Graphics; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.lang.*; import java.net.MalformedURLException; public class cgi_java extends java.applet.Applet{ private TextArea fileArea; Font titleFont; FontMetrics titleFontMetrics; String line; int num; String text[ ] = new String[100]; public void init() { fileArea = new TextArea(); try { URL file = new URL(getDocumentBase(), "/cgi-bin/java_cgi.cgi"); BufferedInputStream my_buffer = new BufferedInputStream(file.openStream()); DataInputStream in = new DataInputStream(my_buffer); num=0; while ((line = in.readLine()) != null){ fileArea.appendText(line); fileArea.appendText("\n"); text[num]=line; num++; } in.close(); } catch(MalformedURLException e) { } catch(IOException e) { } } public void paint(Graphics g) { titleFont = new java.awt.Font("Courier", Font.BOLD, 80); titleFontMetrics = getFontMetrics(titleFont); g.setColor(Color.white); g.fillRect(0,0,600,500); g.setColor(Color.cyan); g.setFont(titleFont); g.drawString("Copyright",0, 80); g.drawString("© 2002",30, 180); g.drawString("TheWeb",30, 280); g.drawString("Production",0, 380); titleFont = new java.awt.Font("Courier", Font.BOLD, 12); titleFontMetrics = getFontMetrics(titleFont); g.setColor(Color.black); g.setFont(titleFont); int j, x=10, y=40, dy=15; for (j=0; j < num; j++){ g.drawString(text[j], x, y); y=y+dy; } } }

В этом апплете, для реализации построчного чтения выходного потока CGI-сценария, мы использовали метод языка Java - readLine( ). Для того, чтобы этот метод работал, необходимо предварительно определить собственно поток DataInputStream(my_buffer), а перед этим для чтения информации из открытого потока ввода, следует сначала создать буффер: my_buffer. В процессе чтения строк, последние заполняют массив text[ ]. Графический вывод строк в броузер обеспечивает метод Paint( ) с помщью оператора g.drawString(text[j], x, y).

CGI программа как всегда лаконична:




Начало  Назад  Вперед