用Servlet生成動態(tài)圖片

          Posted on 2006-10-09 00:13 青峰 閱讀(413) 評論(1)  編輯  收藏

          ??? 打開eclipse(最好是裝了myeclipse的),新建webproject,新建類這里是JPEGServlet,繼承(extends)HttpServlet[繼承所有方法打上鉤,在新建類的最下方有個Tchecked控件,這樣很多代碼就自動產(chǎn)生了],這些我就不多講了,不好意思班門弄大斧,如果你是初學(xué),那我就不好意思的講講清楚,大家互相學(xué)習(xí),說不定就這一小源碼,大家慢慢發(fā)展變化就變成大大東東了!這也是我發(fā)這篇文章的原因,畢竟我也是個初學(xué)者......好了,好像是賣關(guān)子的拉!
          1.?? 詳細(xì)源碼如下:
          package servlet;? //包名

          import java.awt.*;
          import java.awt.image.*;
          import com.sun.image.codec.jpeg.*;
          import java.io.IOException;

          import javax.servlet.*;
          import javax.servlet.http.*;

          public class JPEGServlet extends HttpServlet {

          ?private static final long serialVersionUID = 1L;

          ?public void doGet(HttpServletRequest request, HttpServletResponse response)
          ???throws ServletException, IOException {

          ??response.setContentType("image/jpeg");
          ??ServletOutputStream out = response.getOutputStream();
          ??BufferedImage image = new BufferedImage(750, 30, BufferedImage.TYPE_INT_RGB);
          ??int per = 0;
          ??try
          ??{
          ???per = Integer.parseInt((String)request.getParameter("size"));//接收參數(shù),表示進(jìn)度
          ??}
          ??catch(Exception e)
          ??{
          ???e.printStackTrace();
          ??}
          ??
          ??Graphics graphics = image.getGraphics();
          ??graphics.setColor(Color.green);
          ??graphics.fillRect(0, 0, 750, 30);
          ??graphics.setColor(Color.yellow);
          ??graphics.fillRect(0, 0, 750 * per / 100, 30);
          ??JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
          ??encoder.encode(image);
          ??out.close();

          ?}

          ?public void doPost(HttpServletRequest request, HttpServletResponse response)
          ???throws ServletException, IOException {

          ??doGet(request, response);
          ?}

          }

          2. web.xml配置如下
          <servlet>
          ?? <servlet-name>jpegServlet</servlet-name>?????????????? /*servlet名稱*/
          ?? <servlet-class>servlet.JPEGServlet</servlet-class>???? /*servlet類所在位置
          ??????????????????????????????????????????????????????????? 包名.類名
          ?????????????????????????????????????????????????????????? */
          </servlet>

          <servlet-mapping>
          ?? <servlet-name>jpegServlet</servlet-name>????????????? /*servlet映射設(shè)置
          ???????????????????????????????????????????????????????????????????????????????????? servlet名稱
          ?????????????????????????????????????????????????????????????????????????????? ? */
          ?? <url-pattern>/picture</url-pattern>????????????????? /*訪問路徑*/
          </servlet-mapping>

          3. 訪問
          ?? http://localhost:8088/工程名稱/picture?size=33
          ?? 這樣去訪問得到個顯示進(jìn)度的圖形
          ?? 大多數(shù)油箱的存儲容量和網(wǎng)盤空間顯示的進(jìn)度就可以這樣用size參數(shù)訪問來設(shè)置了,也就是把這個servlet內(nèi)陷入源碼
          ?? 如:
          <jsp:include page="/picture" flush="true">
          ?? <jsp:param name="size" value="33">//這里value值當(dāng)然就可以是個變量了
          </jsp:inclue>

          4. 加深
          ?? ①使它動態(tài)的進(jìn)度條,速度實(shí)實(shí)在在的在變動,我想稍微在jsp里寫個程序就不難了吧,如果你不太明白就跟我聯(lián)系羅(QQ:150343747)
          ?? ②利用這種方式來實(shí)現(xiàn)“動態(tài)驗(yàn)證碼”
          ?? 這兩點(diǎn),由于時間和空間問題我就先不熬述了,但是值得大家一起來討論和研究!

          5. 思考
          ??? ①不知道大家有沒有發(fā)現(xiàn),http://localhost:8088/工程名稱/picture?size=33這樣去訪問servlet用查看源文件是看不到的,然后另為為,發(fā)現(xiàn)它是圖片格式,確實(shí)也是圖片格式,代碼response.setContentType("image/jpeg")已經(jīng)告訴我們了,那么是不是就可以
          ?????? <img src="/picture?size=33" />
          來訪問了呢???
          ??? ②不知道大家有沒有注意,一般一個網(wǎng)站上很多相同樣式或背景按鈕只是字不同,比如“確定”“取消”,“放送”等等,難道每改變一個詞就要用圖片編輯器重新編輯一下嗎?難道就不能用servlet來設(shè)計(jì)自己樣式的按鈕,只要把參數(shù)“顯示在按鈕上的字”賦給servlet就行了嗎?想想這樣的思路正確嗎?
          ???? 好了,今天就講這么多,時間不早了,咱來日方長!

          Feedback

          # re: 用Servlet生成動態(tài)圖片[未登錄]  回復(fù)  更多評論   

          2007-05-18 21:01 by James
          樓主寫錯了吧,應(yīng)該是可以通過<img src="picture?size=33" />來訪問吧?

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          posts - 2, comments - 1, trackbacks - 0, articles - 0

          Copyright © 青峰

          主站蜘蛛池模板: 灌南县| 惠州市| 金沙县| 丽水市| 宾阳县| 青浦区| 防城港市| 白城市| 读书| 皋兰县| 象山县| 上思县| 中阳县| 青田县| 二连浩特市| 铁岭县| 丰城市| 宝丰县| 辰溪县| 临桂县| 来凤县| 湖南省| 巢湖市| 曲周县| 香港| 铜梁县| 汤阴县| 包头市| 施甸县| 监利县| 满洲里市| 莎车县| 南阳市| 吕梁市| 团风县| 靖边县| 灵丘县| 惠州市| 仁布县| 新晃| 临汾市|