简单的servlet计数器,简单的servl,单的servle,的servlet,servlet计,ervlet计数 简单的servlet计数器----编程资料集中营--八角123--bajiao123.com
编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 进入问吧 | 
简单的servlet计数器, 说明:请直接存放在tomcat/webapps/下则可使用会直接输出Jpg的计数器请用html语法imgsrc=http://ip:port/count/countPng环境JAVA:j2sdk1.4.2以上Version:ApacheTomcat/5.0.30以上request参数bgr=0&bgg=0&bgb=0&siz,
您现在的位置: 编程资料,学习资料,c,c++,vc,vc++,java,jsp,j2ee,j2me,asp,php >> 文章中心 >> JAVA 专区 >> JSP 技术 >> 文章正文
【字体:
简单的servlet计数器   进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:本站    点击数:    更新时间:2007-5-25    

简单的servlet计数器

说明:

请直接存放在tomcat/webapps/ 下则可使用
会直接输出Jpg的计数器
请用html语法 img src=http://ip:port/count/countPng

环境
JAVA: j2sdk1.4.2以上
Version: Apache Tomcat/5.0.30 以上

request 参数
bgr=0&bgg=0&bgb=0&size=24&fr=255&fg=255&
   fb=255&f=Courier
背景R G B的颜色分别为: bgr bgg bgb
前景R G B的颜色分别为: fr fg fb
字型大小 size
字体 f (只吃英文)

使用方法
http://ip:port/count/countPng
http://ip:port/count/countPng?bgr=0&bgg=0&bgb=0&size=24&fr=255&fg=255&fb=255&f=Courier

运行图:

主要代码:

package web;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.*;

import java.util.Date;

import javax.imageio.ImageIO;

import javax.servlet.*;

import javax.servlet.http.*;

public class Web_count1 extends HttpServlet

{

    public Web_count1()

    {

    }

    public void init(ServletConfig config)

        throws ServletException

    {

        super.init(config);

    }

    public void doGet(HttpServletRequest req, HttpServletResponse res)

        throws ServletException, IOException

    {

        doPost(req, res);

    }

    public void doPost(HttpServletRequest req, HttpServletResponse res)

        throws ServletException, IOException

    {

        int bgr;

        if(req.getParameter("bgr") == null || req.getParameter("bgr").equals(""))

            bgr = 121;//背景色中的红色值

        else

            bgr = Integer.parseInt(req.getParameter("bgr"));

        int bgg;

        if(req.getParameter("bgg") == null || req.getParameter("bgg").equals(""))

            bgg = 82;//背景色中的绿色值

        else

            bgg = Integer.parseInt(req.getParameter("bgg"));

        int bgb;

        if(req.getParameter("bgb") == null || req.getParameter("bgb").equals(""))

            bgb = 205;//背景色中的兰色值勤

        else

            bgb = Integer.parseInt(req.getParameter("bgb"));

        int size;

        if(req.getParameter("size") == null || req.getParameter("size").equals(""))

            size = 24;//字体大小

        else

            size = Integer.parseInt(req.getParameter("size"));

        int fr;

        if(req.getParameter("fr") == null || req.getParameter("fr").equals(""))

            fr = 255;//字体颜色值中的红色值

        else

            fr = Integer.parseInt(req.getParameter("fr"));

        int fg;

        if(req.getParameter("fg") == null || req.getParameter("fg").equals(""))

            fg = 255;//字体颜色值中的绿色值

        else

            fg = Integer.parseInt(req.getParameter("fg"));

        int fb;

        if(req.getParameter("fb") == null || req.getParameter("fb").equals(""))

            fb = 255;//字体颜色值中的兰色值

        else

            fb = Integer.parseInt(req.getParameter("fb"));

        String f;

        if(req.getParameter("f") == null || req.getParameter("f").equals(""))

            f = "Courier";//字体名

        else

            f = req.getParameter("f");

        res.setContentType("image/jpeg");

        HttpSession session = req.getSession(true);

        String url = getServletContext().getRealPath("/");

        if(!session.isNew())

        {

            Date halfAgo = new Date((long)((double)System.currentTimeMillis() - 1800000D));

            Date create = new Date(session.getLastAccessedTime());

            if(create.before(halfAgo))

            {

                session.invalidate();

                session = req.getSession(true);

            }

        }

        Integer count = (Integer)session.getAttribute("tracker.count");

        if(count == null)

            count = new Integer(got_count(url));//增加计数

        session.setAttribute("tracker.count", count);

        String str = new String(session.getAttribute("tracker.count").toString());

        BufferedImage outimg = out_image(url, (new String("0000000" + str)).substring(
("0000000" + str).length() - 7, ("0000000" + str).length()), bgr, bgg, bgb, size, f, fr, fg, fb); ServletOutputStream sos = res.getOutputStream(); ImageIO.write(outimg, "PNG", sos); sos.close(); res.flushBuffer(); } public void destroy() { super.destroy(); } public String getServletInfo() { return "Servlet Call Test"; } private int got_count(String url) { File f = new File(url, "count.txt"); String str = "0"; try { if(!f.exists()) { f.createNewFile(); FileWriter fo = new FileWriter(f); fo.write("0".toString()); fo.close(); } FileReader fi = new FileReader(f); StringBuffer sb = new StringBuffer(""); for(int ch = 0; (ch = fi.read()) != -1;) sb.append((char)ch); fi.close(); f = null; str = new String(String.valueOf(Integer.parseInt(sb.toString()) + 1)); FileWriter fw = new FileWriter(url + "count.txt"); fw.write(str); fw.close(); f = null; } catch(Exception e) { System.out.println(e.toString()); } return Integer.parseInt(str.toString()); } private BufferedImage out_image(String url, String count, int bgr, int bgg, int bgb, int size, String f, int fr, int fg, int fb) { Font font = new Font(f, 1, size); Color bg = new Color(bgr, bgg, bgb); Color fontcolor = new Color(fr, fg, fb); int width = 112; int height = 21; BufferedImage image = new BufferedImage(width, height, 1); Graphics g = image.getGraphics(); g.setColor(bg); g.fillRect(0, 0, width, height); g.setFont(font); FontMetrics fm = g.getFontMetrics(font); g.setColor(fontcolor); g.drawString(count, (width - fm.stringWidth(count)) / 2, (0 + fm.getHeight()) / 2); return image; } }

   

进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
编程资料集中营