如何用jsp在web页面中画矩形,并且在矩形框写文字?
画矩形很容易实现,如何在其中添加文字呢?
------解决方案--------------------用VML吧,操作代码用javascriopt,或者用applet
------解决方案--------------------Servlet 中画三角形,以下为doget方法 
 图象编码用到com.sun.image.codec.jpeg.*;包   
 public void doGet(HttpServletRequest request, HttpServletResponse response) 
 			throws 
ServletException, 
IOException { 
 		response.reset(); 
 		response.setContentType( "image/jpeg "); 
 		int width=400,height=300; 
 		BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); 
 		Graphics g =image.getGraphics(); 
 		g.setColor(Color.black); 
 		g.drawRect(0,0,width,height); 
 		g.setColor(Color.red); 
 		g.drawString( "it is a string ",width-10,height+10); 
 	    ServletOutputStream out1 = response.getOutputStream(); 
 	    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out1); 
 	    encoder.encode(image); 
 	    out1.close();  		 
 }
------解决方案-------------------- <%@ page language= "java " contentType= "text/html; charset=GBK " 
     pageEncoding= "GBK "%>  
  <%@ page  import= "java.awt.*,java.awt.image.*,java.util.*,javax.imageio.* " %>    
  <!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN ">  
  <html>  
  <head>  
  <meta http-equiv= "Content-Type " content= "text/html; charset=GB18030 ">  
  <title> Insert title here </title>  
  </head>  
  <body>  
  <%! 
 Color getRandColor(int fc,int bc){//给定范围获得随机颜色 
         Random random = new Random(); 
         if(fc> 255) fc=255; 
         if(bc> 255) bc=255; 
         int r=fc+random.nextInt(bc-fc); 
         int g=fc+random.nextInt(bc-fc); 
         int b=fc+random.nextInt(bc-fc); 
         return new Color(r,g,b); 
         } 
 %>  
  <% 
 //设置页面不缓存 
 response.setHeader( "Pragma ", "No-cache "); 
 response.setHeader( "Cache-Control ", "no-cache "); 
 response.setDateHeader( "Expires ", 0);   
 // 在内存中创建图象 
 int width=60, height=20; 
 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   
 // 获取图形上下文 
 Graphics g = image.getGraphics();   
 //生成随机类 
 Random random = new Random();   
 // 设定背景色 
 g.setColor(getRandColor(200,250)); 
 g.fillRect(0, 0, width, height);   
 //设定字体 
 g.setFont(new Font( "Times New Roman ",Font.PLAIN,18));   
 //画边框 
 //g.setColor(new Color()); 
 //g.drawRect(0,0,width-1,height-1);     
 // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到 
 g.setColor(getRandColor(160,200)); 
 for (int i=0;i <155;i++) 
 { 
         int x = random.nextInt(width); 
         int y = random.nextInt(height); 
         int xl = random.nextInt(12); 
         int yl = random.nextInt(12); 
         g.drawLine(x,y,x+xl,y+yl); 
 }   
 // 取随机产生的认证码(4位数字) 
 String sRand= " "; 
 for (int i=0;i <4;i++){ 
     String rand=String.valueOf(random.nextInt(10)); 
     sRand+=rand; 
     // 将认证码显示到图象中 
     g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成 
     g.drawString(rand,13*i+6,16); 
 }   
 // 将认证码存入SESSION 
 session.setAttribute( "rand ",sRand); <