Servlet met html code
Een servlet kan html code bevatten, dit wil zeggen dat de servlet output stuurt naar een printwriter. Net zoals ene jsp-pagina java code kan bevatten. Natuurlijk is dit slordig, maar we zullen eerst dit voorbeeld aanhalen om daarna verder te gaan naar hoe het wel moet. Hoe we een servlet met een jsp pagina laten communiceren.
In deze tutorial hebben we een online dobbelspel en we laten de gebruiker met twee dobbelstenen rollen. Onze servlet genereerd twee random getallen (tussen 1 en 6). Deze worden vervolgens aan de gebruiker getoond via html binnen de Servlet:
public class DobbelServlet extends HttpServlet {public class DobbelServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getWriter(); int eersteDobbel = (int)((Math.random()*6)+1); int tweedeDobbel = (int)((Math.random()*6)+1); out.println("<html"); out.println("<body>"); out.println("U gooide: " + eersteDobbel + " en " + tweedeDobbel); out.println("</body>"); out.println("</html>"); } }
Hier wordt binnen de doGet de juiste printwriter aangemaakt, deze zit in het response object. Vervolgens genereren we twee random getallen en geven we deze weer. Zoals u ziet is dit natuurlijk heel slordig. Maar alles wordt wel juist uitgevoerd mits we de juiste klassen inladen en ons web.xml bestand juist is:
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.PrintWriter;
En de servlet mapping in het web.xml bestand:
<servlet>
<servlet-name>DobbelServlet</servlet-name>
<servlet-class>servlets.DobbelServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DobbelServlet</servlet-name>
<url-pattern>/dobbel.do</url-pattern>
</servlet-mapping>
In de volgende tutorial gaan we bekijken hoe we de html code uit de servlet halen en de data van de servlet in de html code opvragen.