<%@ page import="java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*" %> <%@ page contentType="image/jpeg" import="java.util.*,java.io.*" %> <% //Billede med avatar BufferedImage billede = new BufferedImage(250, 75, BufferedImage.TYPE_INT_RGB); Graphics2D g = billede.createGraphics(); g.setRenderingHint( // sæt evt. tegnevink til trappeudjævning (antialias) RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(new Color(180,180,180)); //grå baggrund g.fillRect(0,0,250, 75); // hent billedet fra harddisken - eller fra cache i application-objektet Image jacob = (Image) application.getAttribute("jacobbillede"); if (jacob == null) { String sti = application.getRealPath("/kode/kapitel_01/jacob.jpg"); InputStream is = new FileInputStream(sti); jacob = JPEGCodec.createJPEGDecoder(is).decodeAsBufferedImage(); application.setAttribute("jacobbillede",jacob); } // tegn billedet nedskaleret g.drawImage(jacob,210,-30,70,120,null); // tegn hvid taleboks og forbind den med Jacobs mund (tegn udfyldt trekant) g.setColor(Color.WHITE); g.fillRoundRect(5, 5, 190, 65, 20, 20); int[] xp={195,195,228}; int[] yp={30,60,45}; g.fillPolygon(xp, yp, 3); // bestem netlæser ud fra HTTP-headeren "user-agent" String info = request.getHeader("user-agent"); StringTokenizer st = new StringTokenizer(info, "(;)"); // opdel i bidder String netl = st.nextToken().trim(); String styresyst = "?"; while (st.hasMoreTokens()) { String s = st.nextToken().trim(); if (s.length()<=4) continue; if (s.equals("compatible")) { netl = st.nextToken().trim(); continue; } if (styresyst.length()<=1) styresyst = s; } if (netl.startsWith("MSIE")) netl = "Internet Explorer" + netl.substring(4); if (styresyst.equalsIgnoreCase("Windows NT 4.0")) styresyst="Windows NT 4.0"; if (styresyst.equalsIgnoreCase("Windows NT 5.0")) styresyst="Windows 2000"; if (styresyst.equalsIgnoreCase("Windows NT 5.1")) styresyst="Windows XP"; g.setColor(Color.black); g.drawString("Jeg holder øje med dig...", 10, 20); g.drawString("Din adresse: " + request.getRemoteHost(), 10, 35); g.drawString("Netlæser: " + netl, 10, 50); g.drawString("Styresystem: " + styresyst, 10, 65); // færdig med at tegne, frigiv grafik-objektet, konvertér til JPG og send g.dispose(); JPEGCodec.createJPEGEncoder(response.getOutputStream()).encode(billede); %>