2006年10月9日

         今天可能是周末,周围的一切都感觉那么沉静,故而来到这里想找到一种不那么冷清而让人留恋和开心的感觉——我把这里叫“暖房”。
         当你开心而笑唇难合时,所有开心可以与人分享同乐,唤起的是阵阵激动与回味;当你伤心而微感绝望时,所有烦恼都可以宣泄而出,大家都会展开胸怀,留下的永远是理解和包容。

posted @ 2006-12-02 15:14 青峰 阅读(229) | 评论 (0)编辑 收藏

    打开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就行了吗?想想这样的思路正确吗?
     好了,今天就讲这么多,时间不早了,咱来日方长!

posted @ 2006-10-09 00:13 青峰 阅读(406) | 评论 (1)编辑 收藏


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

Copyright © 青峰