用Servlet生成動態圖片

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

          ??? 打開eclipse(最好是裝了myeclipse的),新建webproject,新建類這里是JPEGServlet,繼承(extends)HttpServlet[繼承所有方法打上鉤,在新建類的最下方有個Tchecked控件,這樣很多代碼就自動產生了],這些我就不多講了,不好意思班門弄大斧,如果你是初學,那我就不好意思的講講清楚,大家互相學習,說不定就這一小源碼,大家慢慢發展變化就變成大大東東了!這也是我發這篇文章的原因,畢竟我也是個初學者......好了,好像是賣關子的拉!
          1.?? 詳細源碼如下:
          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"));//接收參數,表示進度
          ??}
          ??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映射設置
          ???????????????????????????????????????????????????????????????????????????????????? servlet名稱
          ?????????????????????????????????????????????????????????????????????????????? ? */
          ?? <url-pattern>/picture</url-pattern>????????????????? /*訪問路徑*/
          </servlet-mapping>

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

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

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

          Feedback

          # re: 用Servlet生成動態圖片[未登錄]  回復  更多評論   

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

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


          網站導航:
           

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

          Copyright © 青峰

          主站蜘蛛池模板: 阿鲁科尔沁旗| 建瓯市| 无锡市| 乌海市| 瑞安市| 霸州市| 博兴县| 鱼台县| 环江| 寿宁县| 江达县| 红桥区| 诸暨市| 阳原县| 平陆县| 育儿| 乾安县| 嵊州市| 喀喇沁旗| 吉林省| 辽中县| 北安市| 大石桥市| 忻城县| 汉源县| 罗田县| 平乡县| 古丈县| 鸡西市| 湟中县| 仙桃市| 乌恰县| 泗阳县| 阳朔县| 麦盖提县| 女性| 玛纳斯县| 金山区| 云霄县| 岱山县| 海门市|