Servlet to view Browser Information while visiting a site as a JPEG image Apr 10, 2006 • Rohit Java Servlets public class ImgServlet extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void destroy() { } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String text= "" ; Vector v=new Vector(); Font font = Font.decode("Arial-BOLD-18"); Color background = Color.white; Color color = Color.black; BufferedImage buffer = new BufferedImage(1,1,BufferedImage.TYPE_INT_RGB); Graphics2D g2 = buffer.createGraphics(); FontRenderContext fc = g2.getFontRenderContext(); Rectangle2D bounds = font.getStringBounds(text,fc); int width = (int) bounds.getWidth(); int height = (int) bounds.getHeight(); for (Enumeration e=request.getHeaderNames(); e.hasMoreElements() ;) if (e==null) break; else { String h=(String)e.nextElement(); text=h+" : "+request.getHeader(h)+"\n"; v.add(text); bounds = font.getStringBounds(text,fc); if (bounds.getWidth()>width) width=(int)bounds.getWidth(); height+=bounds.getHeight(); } text="Remote Address : "+request.getRemoteAddr()+"\n"; v.add(text); if (bounds.getWidth()>width) width=(int)bounds.getWidth(); height+=bounds.getHeight(); text="Remote Host : "+request.getRemoteHost()+"\n"; v.add(text); if (bounds.getWidth()>width) width=(int)bounds.getWidth(); height+=bounds.getHeight(); text="Server Name : "+request.getServerName()+"\n"; v.add(text); if (bounds.getWidth()>width) width=(int)bounds.getWidth(); height+=bounds.getHeight(); text="Protocol : "+request.getProtocol()+"\n"; v.add(text); if (bounds.getWidth()>width) width=(int)bounds.getWidth(); height+=bounds.getHeight(); buffer = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); g2 = buffer.createGraphics(); g2.setFont(font); g2.setColor(background); g2.fillRect(0,0,width,height); g2.setColor(color); for (int j=0; j<v.size();j++) { g2.drawString((String)v.elementAt(j),0,(int)-bounds.getY()*j+20); } response.setContentType("image/jpeg"); OutputStream os = response.getOutputStream(); ImageIO.write(buffer, "jpeg", os); os.close(); } catch (java.lang.Exception ex) { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println( "** Error ** " ); ex.printStackTrace(out); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } public String getServletInfo() { return "The servlet displays HTTP headers!"; } } Add reply Click here to reply to the blog post instead Send