<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小菜毛毛技術(shù)分享

    與大家共同成長

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks
    最近,公司用servlet做一個跟蹤圖片點擊技術(shù)的模塊,我個人略有心得想和大家分享,
     不知大家愿意審視。
     這個模塊挺大,我僅說說用servlet顯示圖片部分。我先說說用servlet顯示圖片的一個流程:
     1. 設(shè)置response的輸出類型:
        對應(yīng)的語句--response.setContentType("image/gif;charset=GB2312") ,response  
        便能輸出gif圖片,"image/gif;charset=GB2312"便是輸出類型,當(dāng)然你可以輸出
        "image/jpg;charset=GB2312"類型文件。
     2. 得到文件流:
        servlet是以流的形式件圖片文件從服務(wù)器讀出,通過response將流發(fā)到瀏覽器的。
     3. 得到輸出流:
        對應(yīng)的語句--OutputStream output = response.getOutputStream();
        當(dāng)然,處理圖片文件需要以二進(jìn)制形式的流。
     4. 文件流的編碼(但也不一定必須編碼的,如果不是文件流,則必須編碼)
        所以我給大家一個用編碼的代碼和不用編碼的代碼.
    順便說一句,sun公司僅提供了jpg圖片文件的編碼api。
        
        我想基本流程都講完了,下面我把代碼拿給大家看一下,大家自然一目了然了:
    package xjw.personal.servet;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import com.sun.image.codec.jpeg.*;//sun公司僅提供了jpg圖片文件的編碼api
    import javax.imageio.stream.*;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    public class ShowPicture  extends HttpServlet
    {
         private static final String GIF="image/gif;charset=GB2312";//設(shè)定輸出的類型
         private static final String JPG="image/jpeg;charset=GB2312";
         public void init()  throws ServletException
         {
         }
         public void doGet(HttpServletRequest request, HttpServletResponse response)
                      throws IOException, ServletException
         {
            doPost(request, response);
         }

        public void doPost(HttpServletRequest request, HttpServletResponse response)
                     throws IOException, ServletException
       {
            
            String spec=request.getParameter("spec");//輸出圖片的類型的標(biāo)志
     int int_spec=Integer.parseInt(spec);
            if(spec==1)    
            {
                String imagePath="/jfgg/b1.jpg";//圖片相對web應(yīng)用的位置
            }
            else
            {
                  String imagePath="/jfgg/b2.gif";//圖片相對web應(yīng)用的位置
            }    
            
           OutputStream output = response.getOutputStream();//得到輸出流
           if(imagePath.toLowerCase().endsWith(".jpg"))//使用編碼處理文件流的情況:
          {
         response.setContentType(JPG);//設(shè)定輸出的類型
              //得到圖片的真實路徑      
              imagePath = getServletContext().getRealPath(imagePath);
             //得到圖片的文件流
              InputStream imageIn = new FileInputStream(new File(imagePath));
             //得到輸入的編碼器,將文件流進(jìn)行jpg格式編碼
         JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);
             //得到編碼后的圖片對象
             BufferedImage image = decoder.decodeAsBufferedImage();
             //得到輸出的編碼器
              JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
              encoder.encode(image);//對圖片進(jìn)行輸出編碼
              imageIn.close();//關(guān)閉文件流
           }
           if(imagePath.toLowerCase().endsWith(".gif"))//不使用編碼處理文件流的情況:
          {
        response.setContentType(GIF);
        ServletContext context = getServletContext();//得到背景對象
        InputStream imageIn=context.getResourceAsStream(imagePath);//文件流
             BufferedInputStream bis=new BufferedInputStream(imageIn);//輸入緩沖流
        BufferedOutputStream bos=new BufferedOutputStream(output);//輸出緩沖流
        byte data[]=new byte[4096];//緩沖字節(jié)數(shù)
        int size=0; 
        size=bis.read(data);
        while (size!=-1)
        {
           bos.write(data,0,size);
                size=bis.read(data);
        }
        bis.close();
        bos.flush();//清空輸出緩沖流
             bos.close();
        }
          output.close();
                
         }
    }
    最后是如何調(diào)用,你可以簡單的映射一下servelt,我就將servet的名映射為
           ShowPic,  于是下代碼調(diào)用
    <html>
    <body>
    <img src="ShowPic?spec=2"></a>
    </body>
    </html>
            這樣圖片便顯示在htm上了,本人研究java的時間不長,如有問題,盡情指正。
    posted on 2010-09-25 13:43 小菜毛毛 閱讀(4300) 評論(0)  編輯  收藏 所屬分類: 面試
    主站蜘蛛池模板: 在线亚洲精品福利网址导航| 中文字幕人成人乱码亚洲电影| 亚洲国产高清人在线| 亚洲综合在线视频| 亚洲日韩精品无码专区| 免费观看又污又黄在线观看| 久久精品免费一区二区三区| 免费看国产成年无码AV片| 亚洲成a人无码av波多野按摩 | 色www永久免费网站| 亚洲免费一级视频| 暖暖日本免费在线视频 | 一级黄色片免费观看| 中文字幕免费观看| 亚洲成A人片在线观看中文 | 免费网站看av片| 91亚洲va在线天线va天堂va国产| 免费人成视频在线播放| 亚洲男人av香蕉爽爽爽爽| 日韩亚洲国产高清免费视频| 99精品视频在线观看免费| 亚洲AV乱码久久精品蜜桃| 美女啪啪网站又黄又免费| 成年在线观看免费人视频草莓| 久久久久久a亚洲欧洲aⅴ| 欧洲亚洲综合一区二区三区| 亚洲黄色免费电影| 亚洲AV无码成人专区片在线观看| 看免费毛片天天看| 成人午夜大片免费7777| 三级片免费观看久久| 国产麻豆剧传媒精品国产免费| 一区二区免费在线观看| 亚洲综合在线视频| 国产精品va无码免费麻豆| 久久精品国产亚洲AV久| 免费精品无码AV片在线观看| 亚洲精品乱码久久久久久蜜桃不卡 | h视频在线免费看| 精品在线视频免费| 亚洲精品欧洲精品|