Posted on 2006-10-09 00:13
青峰 阅读(406)
评论(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就行了吗?想想这样的思路正确吗?
好了,今天就讲这么多,时间不早了,咱来日方长!