看看这段,我这里用的时候显示正常
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.image.*;
import java.awt.*;
import com.sun.image.codec.jpeg.*;public class draw extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
      response.setContentType("image/jpeg;charset=gb2312");
      request.setCharacterEncoding("GB2312");
      BufferedImage image=new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);
      Graphics g=image.getGraphics();
      g.drawRect(100,100,200,200);
      g.drawString("中文",200,200);
      ServletOutputStream out = response.getOutputStream();
      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
      encoder.encode(image);
      out.close();
    }    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        doGet(request,response);
    }    public void service(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        doGet(request,response);
    }
}

解决方案 »

  1.   

    你和我的问题一样,我的也无法显示,根本没有画出来
    http://expert.csdn.net/Expert/topic/1362/1362731.xml?temp=.4136164
      

  2.   

    终于找到原因了,是fontName设置有问题,
    原程序:
    String fontName="arial";
    Font mFont = new Font(fontName, 0, fontSize);
    g.setFont(mFont);
    g.drawString(request.getParameter("text"));(text参数值为"天下")其中客户端charset=gb2312,
    servlet里,
    response.setContentType("image/jpeg;charset=GB2312");只需把fontName改为"scanf"或"system"即可。
      

  3.   

    我用的是imageio,顺便问一下,为什么javax.imageio.*在SunONE Studio 4之下没有代码提示?事实上sun studio里写程序时,有很多非jdk所有的.jar包含进来之后,sun studio并不为其提供相应的代码提示,这一点还不如jcreator呢!有解决办法吗?
      

  4.   

    关于IDE的问题,恐怕你我都无法解决,最好的办法是换
    用JBuilder不就有了吗
      

  5.   

    呵呵,好主意,不过jbuilder功能太多,有点复杂,用起来感觉好乱,尤其是调试的时候。而且jbuilder自带的类库与jdk中的类库在许多地方有名称冲突,必须明确标示出包名,麻烦~~~~~~~
      

  6.   

    对了,最可jbuilder有什么缺点都可以原谅,但是它竟然不支持鼠标滚轮,简直太可恨了,所以我不到迫不得已,才不用它呢!!!!