??? 打開(kāi)eclipse(最好是裝了myeclipse的),新建webproject,新建類這里是JPEGServlet,繼承(extends)HttpServlet[繼承所有方法打上鉤,在新建類的最下方有個(gè)Tchecked控件,這樣很多代碼就自動(dòng)產(chǎn)生了],這些我就不多講了,不好意思班門(mén)弄大斧,如果你是初學(xué),那我就不好意思的講講清楚,大家互相學(xué)習(xí),說(shuō)不定就這一小源碼,大家慢慢發(fā)展變化就變成大大東東了!這也是我發(fā)這篇文章的原因,畢竟我也是個(gè)初學(xué)者......好了,好像是賣(mài)關(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>????????????????? /*訪問(wèn)路徑*/
          </servlet-mapping>

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

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

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

          Feedback

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

          2007-05-18 21:01 by James
          樓主寫(xiě)錯(cuò)了吧,應(yīng)該是可以通過(guò)<img src="picture?size=33" />來(lái)訪問(wèn)吧?

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


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

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

          Copyright © 青峰

          主站蜘蛛池模板: 金秀| 江川县| 丹寨县| 黔东| 麦盖提县| 济南市| 电白县| 个旧市| 津南区| 庆安县| 三穗县| 庆城县| 邳州市| 黑龙江省| 潍坊市| 铜陵市| 深泽县| 务川| 株洲县| 抚州市| 库车县| 姚安县| 海盐县| 桃园市| 荣成市| 高陵县| 武义县| 武功县| 西丰县| 三穗县| 岢岚县| 五河县| 泸水县| 津南区| 林口县| 济阳县| 西华县| 昭平县| 八宿县| 都匀市| 白朗县|