Servlets
Servlets werden von einer Java Virtual Machine innerhalb des Web-Servers ausgeführt.
Sie sind also das Gegenstück von Applets, welche ja von einer Java Virtual Machine innerhalb des Web-Browsers ausgeführt werden.
Servlets können wie Java-Applikationen auf lokale Files und Programme am Web-Server zugreifen.
Sie unterliegen somit nicht den Einschränkungen von Applets.
Das gleich folgende minimale Servlet gibt die übergebenen Parameter einfach wieder zurück.
Falls am Client kein Applet wartet, werden die zurückgegebenen Zeichen einfach im Web-Browser dargestellt.
Falls ein Applet die Daten empfängt, kann dieses die Daten natürlich beliebig weiterverarbeiten.
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet { String strParam1, strParam2; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String strParam1 = req.getParameter("parm1"); String strParam2 = req.getParameter("parm2"); resp.setContentType("text/html"); ServletOutputStream out = resp.getOutputStream(); out.println ("Der Wert für Parameter1 war: "+strParam1); out.println ("Der Wert für Parameter2 war: "+strParam2); out.flush(); out.close(); } }
Der Aufruf direkt vom Browser aus würde so aussehen:
(Dabei müssen server und port natürlich durch die entsprechenden Werte für das Servlet ersetzt werden)
http://server:port/servlet/MyServlet?param1=1¶m2=2
Der Aufruf durch ein applet könnte so aussehen:
public void callServlet() { String strLine; try{ URL url = new URL("http://server:port/servlet/MyServlet?param1=1¶m2=2"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "8859_1")); while((strLine = in.readLine()) != null){ System.out.println(strLine); } in.close(); }catch (Exception e) { e.printStackTrace(); } }