亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? getgreetingcardservlet.java

?? greetingcard是手機賀卡的制作軟件。小程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.igm.ig3.greetingcard.servlet;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
import java.util.jar.JarInputStream;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.apic.ig3.common.CommonResponse;
import com.apic.ig3.common.DataConnect;
import com.apic.ig3.common.ErrorCode;
import com.apic.ig3.common.InitialCheck;
import com.apic.ig3.common.MobileFormat;
import com.apic.ig3.common.OutboundSMS;
import com.apic.ig3.common.SessionID;
import com.apic.ig3.common.TransactionLog;
import com.apic.ig3.db.Ig3DB_sp;
import com.apic.ig3.util.ApicUtil;
import com.apic.ig3.util.Ig3Config;
import com.igm.common.image.ImageEditor;
import com.igm.ig3.greetingcard.common.IGCConfig;
import com.igm.mdps.client.ProfilerClient;
import com.igm.mdps.profile.ColoriconProfile;
import com.igm.mdps.util.MdpsConst;

/**
 * A Main HTTP servlet that handle
 * Download of Greeting Cards
 *
 * @author	Tung
 *
 * @version 1.0.0
 */
public class GetGreetingCardServlet extends HttpServlet {
	
	
	/**
	 * String represent the class name
	 */
	private final static String CLASSNAME = "GetGreetingCardServlet";
	
	private static Ig3DB_sp ig3db_sp = null;
	
	public void init(ServletConfig config) 
	{
		try 
		{
			super.init(config);
			ig3db_sp = new Ig3DB_sp();
			ig3db_sp.Connect();
		} catch(Exception e) 
		{}
	}
	
	
    /**
     * Handles the HTTP GET requests from the client phone. 
     *
     * @param  request             Provides request information for HTTP 
     *                             servlets.
     * @param  response            Provides HTTP-specific functionality in 
     *                             sending a response.
     *
     * @throws ServletException    Defines a general exception a servlet can 
     *                             throw when it encounters difficulty.
     */	
	public void doGet(HttpServletRequest request, HttpServletResponse response) 
	throws ServletException 
	{
	    String session = "";
	    String rmtAddr = "";
	    String userAgent = "";
	    String mt = "";
	    
	    String id = "";
	    String jad = "";
	    String jar = "";
	    String hit = "";
	    
		try
		{
		    CommonResponse httpResponse = new CommonResponse(response, "text/vnd.wap.wml");

		    session = request.getParameter("S");
		    rmtAddr = request.getRemoteAddr();
		    userAgent = request.getHeader("User-Agent");
		    mt = "";

		    Hashtable table = null;
		    if((table = readSession(session, userAgent)) == null) 
		    {
		    	doLog("[GetGreetingCardServlet] - ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - No session");
		    	httpResponse.response(wmlResponse("Unable to locate your content."));
		    	return;
		    }

		    /**
		     * check mobile phone user agent and allowed wap ip
		     */
		    mt = (String)table.get("mt");
		    MobileFormat mobileFormat = new MobileFormat(mt);
		    if(!mobileFormat.validateUA(userAgent)) 
		    {
		    	httpResponse.response(wmlResponse("System error(99): please contact our customer service personal."));
		    	doLog("[GetGreetingCardServlet] - ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - invalid ua");
		    	return;
		    }
		    
		    if(!mobileFormat.validateWapIP(rmtAddr)) 
		    {
		    	httpResponse.response(wmlResponse("System error(999): please contact our customer service personal."));
		    	doLog("[GetGreetingCardServlet] - ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - invalid ip");
		    	return;
		    }

		    /**
		     * read the content type we should get for this phone
		     */
		    String igcType = getIGCType(userAgent);
		    if(igcType == null) 
		    {
		    	httpResponse.response(wmlResponse("System error(01): please contact our customer service personal."));
		    	doLog("[GetGreetingCardServlet] - ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - no igc type");
		    	return;
		    }
		    
		    /**
		     * init all jar/jad for different kar type
		     */
		    id = (String)table.get("uid");
		    if(igcType.equals("GCARD40")) 
		    {
		    	jad = IGCConfig.gcard40JadHome + igcType + ".jad";
		    	jar = IGCConfig.gcard40JarHome + igcType + ".jar";
		    } 
		    else if(igcType.equals("GCARD60")) 
		    {
		    	jad = IGCConfig.gcard60JadHome + igcType + ".jad";
		    	jar = IGCConfig.gcard60JarHome + igcType + ".jar";
		    } 
		    else 
		    {
		    	jad = IGCConfig.gcardJadHome + igcType + ".jad";
		    	jar = IGCConfig.gcardJarHome + igcType + ".jar";
		    }

		    /**
		     * deploy the correct jar/jad to download path
		     */
		    String deployedKey = null;
		    if((deployedKey = deployJar(table, session, jad, jar, userAgent)) == null) 
		    {
		    	httpResponse.response(wmlResponse("System error(02): please contact our customer service personal."));
		    	doLog("[GetGreetingCardServlet] - ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - jar failed to deploy:" + jar);
		    	return;
		    }

		    /**
		     * check how many time this link is hit, if it is
		     * the first time, we shd issue callback to caller
		     * and dedcut nick credit and do txn log
		     */
		    hit = (String)table.get("hit");
		    if(Integer.parseInt(hit) == 0) 
		    {
		    	if(!doCallback(table)) 
		    	{
		    		httpResponse.response(wmlResponse("System error(03): please contact our customer service personal."));
		    		clearOutput(deployedKey);
		    		doLog("[GetGreetingCardServlet] - ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - unable to docallback");
		    		return;
		    	}
		    	
		    	if(!logAction(table, id, igcType)) 
		    	{
		    		httpResponse.response(wmlResponse("System error(04): please contact our customer service personal."));
		    		clearOutput(deployedKey);
		    		doLog("[GetGreetingCardServlet] - ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - unable to log txn");
		    		return;
		    	}
		    }
		    
		    doLog("[GetGreetingCardServlet] - Update Hit");
		    updateHit(session, userAgent, deployedKey);
		    doLog("[GetGreetingCardServlet] - Update Hit Done");

		    doLog("[GetGreetingCardServlet]- ["+session+"-"+rmtAddr+"-"+userAgent+"-"+mt+"] - key:" + deployedKey);
		    doLog("[GetGreetingCardServlet] - Jad = n:/tmpupload/"+deployedKey+".jad");
		    
		    httpResponse.setMode("text/vnd.sun.j2me.app-descriptor");
		    httpResponse.response(readJad("n:/tmpupload/"+deployedKey+".jad"));
		}
		catch (Exception exception) 
		{
			StackTraceElement[] trace = exception.getStackTrace(); 

			for (int i=0; i < trace.length; i++) 
			{
				doLog(trace[i].toString());
			}  
		}
		
	}

	
    /**
     * Handles the HTTP POST requests from install-notification. 
     *
     * @param  request             Provides request information for HTTP 
     *                             servlets.
     * @param  response            Provides HTTP-specific functionality in 
     *                             sending a response.
     *
     * @throws ServletException    Defines a general exception a servlet can 
     *                             throw when it encounters difficulty.
     */	
	public void doPost(HttpServletRequest request,
                   HttpServletResponse response) throws ServletException 
    {
	    BufferedReader reader = null;
	    String result = "";
		String session = "";
		String rmtAddr = "";
		String userAgent = "";
		
		try
		{
		    session = request.getParameter("S");
		    rmtAddr = request.getRemoteAddr();
		    userAgent = request.getHeader("User-Agent");

		    Hashtable table = null;
		    if((table = readSession(session, userAgent)) == null)
		      return;

		    try 
		    {
		      reader = request.getReader();
		      result = reader.readLine();
		      reader.close();
		    } 
		    catch(Exception e) 
		    {}

		    doLog("[GetGreetingCardServlet]- ["+session+"-"+rmtAddr+"-"+userAgent+"-"+(String)table.get("mt")+"] - status:" + result);
		    
		    // if install successfully, remove all temporary file
		    if(result.startsWith("900")) 
		    {
		    	clearAll(table, session);
		    	doLog("[GetGreetingCardServlet]- ["+session+"-"+rmtAddr+"-"+userAgent+"-"+(String)table.get("mt")+"] - Delete Done");
		    }
		}
		catch (Exception exception)
		{
		}
    }
	
	/**
	 * Read previous created session file and put into hashtable
	 * @param session
	 * @param ua
	 * @return
	 */
	private Hashtable readSession(String session, String ua) 
	{
		FileInputStream fis = null;
		String fname = "";
		String previousUA = "";
		Properties p = null;
		Hashtable table = null;

		try 
		{
			fname = IGCConfig.tmpHome + session + IGCConfig.sessionExt;
		    fis = new FileInputStream(fname);
		    p = new Properties();
		    p.load(fis);
		    table = new Hashtable();
		    Enumeration e = p.propertyNames();
		    while(e.hasMoreElements()) 
		    {
		    	String key = (String)e.nextElement();
		    	String value = p.getProperty(key);
		    	table.put(key, value);
		    }
		    previousUA = (String)table.get("ua");
		    if(previousUA != null && !previousUA.equals(ua))
		    {
		    	return null;
		    }
		    return table;
		} 
		catch(Exception e) 
		{} 
		finally 
		{
			try { fis.close(); } catch(Exception e) {}
		}
		return null;
	}
	
	
	/**
	 * Return string of wml response message
	 * @param msg
	 * @return
	 */
	public static String wmlResponse(String msg) 
	{
		String str = 
			 "<?xml version=\"1.0\"?>" +
			 "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">" +
			 "<wml>" +
			 "<card id=\"iguana\" title=\"Message\">" +
			 "<p align=\"center\">" +
			 msg +
			 "</p>" +
			 "</card>" +
			 "</wml>";
		return str;
	}
	  

	/**
	 * Get type of greetingcard to be download based on UA
	 * @param userAgent
	 * @return
	 */  
	public static String getIGCType(String userAgent) 
	{
		FileInputStream fis = null;
		Properties p = null;
		String gcard40 = "";
		String gcard60 = "";
		String type = null;
		
		try 
		{
			fis = new FileInputStream(IGCConfig.gcardUAFile);
		    p = new Properties();
		    p.load(fis);
		    gcard40 = p.getProperty("GCARD40");
		    gcard60 = p.getProperty("GCARD60");
		    fis.close();
		    userAgent = userAgent.toLowerCase();
		    if(userAgent.matches(gcard40.toLowerCase()))
		    {
		    	type = "GCARD40";
		    }
		    else if(userAgent.matches(gcard60.toLowerCase()))
		    {
		    	type = "GCARD60";
		    }
		    else
		    {
		    	type = "GCARD";
		    }
		} 
		catch(Exception e) 
		{
		}
		return type;
	}

	  
	/**
	 * Get midi path based on midi ID
	 * @param sID
	 * @return
	 */
	private String getMidi(String sID)
	{
		String midiPath = null;
		String sHome = "";
		String ext = "";
		int poly_count = 4;
		int max_size = 0;
		
		try
		{
			sHome = Ig3Config.GetValue("SPMIDI_HOME");
			ext = ".mid";
			midiPath = sHome + "/" + sID + ext;
		}
		catch (Exception e) 
		{}
		return midiPath;
	}
	  
	
	/**
	 * Get img path based on id and UA
	 * @param sID
	 * @param sUA
	 * @param index
	 * @return
	 */
	private String getImage(String sID, String sUA, String index)
	{
		String outputFile = null;
		File profilerConfig = null;
		ProfilerClient pc = null;
		ColoriconProfile cp = null;
		
		String sHome = "";
		String ext = "";
		String icon_type = "application/octet-stream";
		
		int icon_height = 0;
		int icon_width = 0;
		int max_size = 0;
		double fRatio = 1l;
		double ratio_variation = 0;
		
		boolean isMRCIMG = true;
		
		try
		{
			//init the ProfilerClient
			doLog("[GetGreetingCardServlet] - Create Profiler Client");
			profilerConfig = new File (Ig3Config.GetValue("MDPS_CONFIG_FILE") );
			if (!profilerConfig.exists() || !profilerConfig.isFile() )
			{
				doLog("[GetGreetingCardServlet] - MDPS File Not Found");
				return null;
			}
			
			pc = new ProfilerClient(profilerConfig);
			doLog("[GetGreetingCardServlet] - Profiler Client Created");
			 	
			sHome = Ig3Config.GetValue("MRCIMG_HOME") + "/";
			ext = "." + ig3db_sp.getMRColorIconExt(Integer.parseInt(sID));
			doLog("[GetGreetingCardServlet] - Get ext : "+ext);	
			
			// if file not found on MRC, look on old COLIMG
			if (!new File(sHome+sID+ext).exists()) 
			{
				isMRCIMG = false;
				doLog("[GetGreetingCardServlet] - Detect id belong to normal colg");
				sHome = Ig3Config.GetValue("COLIMG_HOME") + "/";
				ext = ".gif";
			}
				
			doLog("[GetGreetingCardServlet] - Create ColoriconProfile");
			cp = (ColoriconProfile)pc.getColoriconProfile(sUA, MdpsConst.QUERY_UAGT);
			doLog("[GetGreetingCardServlet] - ColoriconProfile Created");
			
			if (ext.equals(".gif"))
			{
				icon_type = "image/gif";
			}
			else if (ext.equals(".jpg"))
			{
				icon_type = "image/jpeg";
			}
			else if (ext.equals(".png"))
			{
				icon_type = "image/png";
			}
				
			ratio_variation = Float.parseFloat(Ig3Config.GetValue("RATIO_VARIATION"));
			if (cp == null) 
			{
				doLog("[GetGreetingCardServlet] - Normal Size 128x128");
				icon_height = 128;
				icon_width = 128;
				max_size = 0;
			} 
			else 
			{
				icon_height = cp.getHeight();
				icon_width = cp.getWidth();
				max_size = cp.getMaxSize();
				doLog("[GetGreetingCardServlet] - CP Size "+icon_height+"x"+icon_width+".");
				
				doLog("[GetGreetingCardServlet] - Get nearest ratio");
				// get the nearest ratio
				double[] fRatios = ig3db_sp.getMRColorIconRatios(Integer.parseInt(sID));
				boolean bVarFound = false;
				for (int i =0; i < fRatios.length; i++) 
				{
					fRatio = fRatios[i];
					double variation = Math.abs(((double) icon_width / icon_height) - fRatios[i]);
					if (variation <= ratio_variation) 
					{
						bVarFound = true;
						break;
					}
				}
				
				if (!bVarFound) 
				{
					doLog("[GetGreetingCardServlet] - Ratio Not found. So back to 128x128");
					fRatio = 1f;
					icon_width = 128;
					icon_height = 128;
				}
			}
				
			// get crop points and width and height (x, y, w, h)
			doLog("[GetGreetingCardServlet] - Get Crop Info");
			int[] CropInfo = ig3db_sp.getMRColorIconCropInfo(Integer.parseInt(sID), fRatio-ratio_variation, fRatio+ratio_variation);
			if (CropInfo[2] == 0) 
			{
				CropInfo[2] = 128;
			}
			if (CropInfo[3] == 0)
			{
				CropInfo[3] = 128;
			}
			
			doLog("[GetGreetingCardServlet] - Start to Crop Image");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www欧美成人18+| 日韩一区二区精品在线观看| 成人午夜在线免费| 欧美精品一区二区三区在线 | 亚洲成av人**亚洲成av**| 粉嫩久久99精品久久久久久夜| 国产精品萝li| 欧美视频日韩视频在线观看| 日韩精品欧美精品| 亚洲综合色在线| 精品福利av导航| eeuss影院一区二区三区| 国产精品污网站| 亚洲成在线观看| 丁香另类激情小说| 欧美色图第一页| 一本大道久久a久久精二百| 紧缚捆绑精品一区二区| 亚洲男同性恋视频| 国产精品美女久久久久高潮| 亚洲成a人片综合在线| 国产成人在线免费| 国产馆精品极品| 日韩视频一区二区三区 | 加勒比av一区二区| 欧美日韩性生活| 美国一区二区三区在线播放| 国产欧美一区二区精品忘忧草| 精品综合久久久久久8888| 天堂久久久久va久久久久| 国产成人在线网站| 久久国产三级精品| 欧美va在线播放| 国产精品91xxx| 久久久一区二区三区捆绑**| 国产精品亚洲成人| 色综合久久综合网欧美综合网 | 欧美精品一区二区在线播放| 亚洲综合男人的天堂| 丁香激情综合五月| 中文字幕不卡在线| 欧美伊人久久久久久午夜久久久久| 欧美伊人久久久久久久久影院| 精品国产一区二区三区不卡| 国产精品久久久久永久免费观看| 7777精品伊人久久久大香线蕉超级流畅| 欧美在线观看一区| 精品国产乱码久久| 国产在线视频一区二区三区| 精品亚洲porn| 久久综合中文字幕| 国产精品一区二区无线| 欧美哺乳videos| 国产精品一二三| 国产亚洲午夜高清国产拍精品| 久久精品人人做| 国产激情视频一区二区三区欧美 | 久久亚洲精华国产精华液 | 欧美亚洲国产一区二区三区va| 性做久久久久久免费观看欧美| 91精品国产91热久久久做人人| 久久免费电影网| 91在线视频免费观看| 日韩女优制服丝袜电影| 久久久亚洲国产美女国产盗摄| 不卡av在线免费观看| 日本一区二区不卡视频| 一本色道久久综合精品竹菊| 视频一区视频二区中文| 国产精品久久久久久久浪潮网站| 欧美日韩精品欧美日韩精品一| 亚洲啪啪综合av一区二区三区| 欧美一区二区在线看| www.成人网.com| 国产成人免费在线观看不卡| 婷婷综合在线观看| 精品国产乱码久久久久久闺蜜| 欧美日韩精品一区视频| 成人黄色一级视频| 久久精品国产77777蜜臀| 亚洲视频小说图片| 粉嫩欧美一区二区三区高清影视 | 一区二区三区四区在线播放| 国产成人日日夜夜| 韩国v欧美v日本v亚洲v| 亚洲激情五月婷婷| 91在线视频网址| 国产成人免费高清| 激情综合五月婷婷| 美腿丝袜一区二区三区| 亚洲成av人综合在线观看| 国产精品视频第一区| 久久久99久久精品欧美| 日韩情涩欧美日韩视频| 日韩欧美你懂的| 精品久久久三级丝袜| 欧美电影免费观看高清完整版在线 | 亚洲一区二区在线播放相泽| 伊人色综合久久天天| 亚洲精品国产高清久久伦理二区| 综合久久久久综合| 亚洲一线二线三线视频| 一个色综合网站| 日韩av午夜在线观看| 欧美mv日韩mv国产网站| 国产日产欧美一区二区视频| 国产精品不卡在线观看| 夜夜爽夜夜爽精品视频| 日本网站在线观看一区二区三区| 美女一区二区久久| 成人一级视频在线观看| 欧美日韩一级视频| 日本一区二区免费在线观看视频 | 激情五月婷婷综合| 91麻豆自制传媒国产之光| 精品一区二区免费在线观看| 97久久精品人人做人人爽50路| 久久伊人中文字幕| 国产精品一区二区91| 欧美日韩一区视频| 国产精品久久久久久久久免费相片| 日本中文字幕不卡| 欧美性高清videossexo| 综合婷婷亚洲小说| 国产风韵犹存在线视精品| 日本韩国欧美国产| 成人激情校园春色| 精品国产制服丝袜高跟| 亚洲高清在线精品| 亚洲精品v日韩精品| 久草精品在线观看| 欧美久久久久久久久中文字幕| 一本久久a久久精品亚洲 | 日韩av中文字幕一区二区| 成人av在线播放网址| 日韩欧美黄色影院| 午夜精品福利一区二区三区av| 播五月开心婷婷综合| 日韩精品一区在线| 免费观看在线色综合| 国产激情精品久久久第一区二区 | 亚洲少妇30p| 欧美午夜片在线观看| 亚洲第一福利一区| 欧美福利视频一区| 国产传媒欧美日韩成人| 国产精品久久久久久久久果冻传媒 | 亚洲成人资源网| 8v天堂国产在线一区二区| 精品亚洲aⅴ乱码一区二区三区| 日韩一级免费一区| caoporen国产精品视频| 蜜臀av性久久久久蜜臀aⅴ| 久久亚洲综合色一区二区三区| 96av麻豆蜜桃一区二区| 亚洲影院在线观看| 久久精品日韩一区二区三区| 色先锋aa成人| 国产麻豆日韩欧美久久| 日本二三区不卡| 久88久久88久久久| 亚洲一区二区三区中文字幕| 欧美日韩一区二区三区在线看| 国产一区欧美一区| 亚洲高清免费观看高清完整版在线观看 | 国产精品久久福利| 欧美丰满一区二区免费视频| 高清国产午夜精品久久久久久| 亚洲成在线观看| 一区二区三区欧美日韩| 日韩三级视频中文字幕| 成人av电影在线播放| 日韩vs国产vs欧美| 夜夜精品浪潮av一区二区三区| 国产丝袜在线精品| 欧美三级视频在线观看| 色综合久久综合网97色综合 | 国产一区二区不卡| 精品久久一区二区| 欧美xxxxx牲另类人与| 欧洲一区在线电影| 欧美视频完全免费看| 欧美高清视频一二三区| 日韩一区二区三区三四区视频在线观看 | 夜夜嗨av一区二区三区网页| 亚洲欧洲日产国码二区| 亚洲成a人v欧美综合天堂| 亚洲成人一区二区| 国产麻豆精品久久一二三| 成人久久久精品乱码一区二区三区| 国产一区在线看| 91在线精品一区二区| 欧美一a一片一级一片| 欧美一区二区精品| 国产精品视频免费| 日韩在线一区二区三区| 国产成人免费av在线| 欧美三级日韩三级国产三级| www欧美成人18+| 日日夜夜免费精品视频|