??? 打開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就行了嗎?想想這樣的思路正確嗎?
???? 好了,今天就講這么多,時間不早了,咱來日方長!