⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageservlet.java

📁 struts spring ibatis
💻 JAVA
字号:
package com.struts2.framework.util;

import Acme.JPM.Encoders.GifEncoder;

import com.eteks.awt.*;
import com.eteks.filter.*;
import java.awt.*;
import java.awt.image.FilteredImageSource;
import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;


public class ImageServlet extends HttpServlet {

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
	doGet(req, resp);
}

public void init(ServletConfig config) throws ServletException {
	super.init(config);
	FONT_PATH = config.getServletContext().getRealPath("WEB-INF/fonts");
	graphicsManager = PJAGraphicsManager.getDefaultGraphicsManager();
	graphicsManager.loadFonts(FONT_PATH);
}

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
	String str = null;
	String ostr = req.getPathInfo();
	try {
//		System.out.println("[IMGDEBUG]ostr $$$$$$$$$$$ " + ostr);
		ostr = ostr.substring(1, ostr.lastIndexOf("."));
//		System.out.println("[IMGDEBUG]ostr $$$$$$$$$$$ " + ostr);
//		str = decryptKey(ostr);
		str = decode(ostr);
//		System.out.println("[IMGDEBUG]str $$$$$$$$$$$ " + str);
	} catch (Exception exception) {
	}
	if (str == null || str.length() < 1) {
		System.err.println("Error Security Code:" + ostr);
		str = "Oops!";
	}
	try {
		Image image = createImage(46, 20);
		Graphics gc = image.getGraphics();
		((PJAGraphicsExtension) gc).setFont("", 1, 14);
		gc.setColor(Color.gray);
		gc.draw3DRect(0, 0, 45, 19, false);
		gc.setColor(Color.black);
		gc.drawString(str, 5, 16);
		sendGIFImage(image, resp);
	} catch (Exception ex) {
		resp.setContentType("text/plain");
		PrintWriter writer = resp.getWriter();
		writer.print("Sorry,Can't generate image\n");
		ex.printStackTrace(writer);
		writer.flush();
		writer.close();
	}
}



public Image createImage(int width, int height) {
	return new PJAImage(width, height);
}

public void sendGIFImage(Image image, HttpServletResponse response)
	throws ServletException, IOException {
	response.setContentType("image/gif");
	response.setHeader("Pragma", "no-cache");
	response.setHeader("Cache-Control", "no-cache");
	
//					response.setHeader("Cache-Control", "must-revalidate");
//	        response.setDateHeader("Expires",0);
	
	response.setHeader("Expires", "Thu, 01 Jan 2002 00:00:00 GMT");
	OutputStream out = response.getOutputStream();
	try {
		(new GifEncoder(image, out)).encode();
			} catch (IOException ioexception) {
		(new GifEncoder(new FilteredImageSource(image.getSource(),
			new Web216ColorsFilter()),
			out))
			.encode();
	}
	out.flush();
}

public static String encode(String code) {
	byte[] _tmp = code.getBytes();
	byte j = 51;
	for(int i = 0; i < _tmp.length; i++) {
		_tmp[i] = new Integer(_tmp[i] + j).byteValue();
		j++;
	}
	return new String(_tmp);
}

public static String decode(String key) {
	byte[] _tmp = key.getBytes();
	byte j = 51;
	for(int i = 0; i < _tmp.length; i++) {
		_tmp[i] = new Integer(_tmp[i] - j).byteValue();
		j++;
	}
	return new String(_tmp);
}

public ImageServlet() {
	FONT_PATH = null;
	graphicsManager = null;
}


String FONT_PATH;
PJAGraphicsManager graphicsManager;


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -