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