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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? requestutils.java

?? 個人Blog java編寫的Blog可以直接使用!
?? JAVA
字號:
/*
 *  RequestUtils.java
 *  
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *  
 *  Author: Winter Lau (javayou@gmail.com)
 *  http://dlog4j.sourceforge.net
 */
package com.liusoft.dlog4j.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.text.MessageFormat;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Properties;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.liusoft.dlog4j.Globals;

/**
 * 用于Request的工具類
 * @author Winter Lau
 */
public class RequestUtils extends org.apache.struts.util.RequestUtils{

	final static Log log = LogFactory.getLog(RequestUtils.class);
	
	private static Properties header_map;
	private static String default_mobile; 
	static{
		InputStream in = RequestUtils.class.getResourceAsStream("/com/liusoft/dlog4j/util/mobile_match.properties");
		header_map = new Properties();
		try{
			header_map.load(in);
			default_mobile = header_map.getProperty("empty");
		}catch(IOException e){
			log.error("加載手機號碼匹配策略文件/mobile_match.conf失敗",e);
		}
	}

	public static boolean isMultipart(HttpServletRequest req) {
		return ((req.getContentType() != null) && (req.getContentType()
				.toLowerCase().startsWith("multipart")));
	}

	/**
	 * 獲取FCKUpload過程中生成的會話ID
	 * @return
	 */
	public static String getDlogSessionId(HttpServletRequest req){
		//優先從Cookie中獲取ssn_id值
		String ssn_id = null;
		Cookie cok = RequestUtils.getCookie(req, Globals.SESSION_ID_KEY_IN_COOKIE);
		if(cok != null){
			ssn_id = cok.getValue();
		}
		if(StringUtils.isEmpty(ssn_id)){
			//如果Cookie得不到則從服務器的會話中讀取
			HttpSession ssn = req.getSession(false);
			if (ssn != null)
				ssn_id = ssn.getId();
		}
		return ssn_id;
	}
	
	/**
	 * 清除FCKUpload過程中生成的Cookie
	 * @param req
	 * @param res
	 */
	public static void clearDlogSessionId(HttpServletRequest req, HttpServletResponse res){
		Cookie cok = RequestUtils.getCookie(req, Globals.SESSION_ID_KEY_IN_COOKIE);
		if(cok != null){
			cok.setMaxAge(0);
			res.addCookie(cok);
		}
	}
	
	/**
	 * 獲取COOKIE
	 * 
	 * @param name
	 */
	public static Cookie getCookie(HttpServletRequest request, String name) {
		Cookie[] cookies = request.getCookies();
		if(cookies == null)
			return null;
		for (int i = 0; i < cookies.length; i++) {
			if (name.equals(cookies[i].getName())) {
				return cookies[i];
			}
		}
		return null;
	}

	/**
	 * 設置COOKIE
	 * 
	 * @param name
	 * @param value
	 * @param maxAge
	 */
	public static void setCookie(HttpServletRequest request, HttpServletResponse response, String name,
			String value, int maxAge) {
		Cookie cookie = new Cookie(name, value);
		cookie.setMaxAge(maxAge);
		String serverName = request.getServerName();
		String domain = getDomainOfServerName(serverName);
		if(domain!=null && domain.indexOf('.')!=-1){
			cookie.setDomain('.' + domain);
		}
		cookie.setPath("/");
		response.addCookie(cookie);
	}
	
	/**
	 * 獲取用戶訪問URL中的根域名
	 * 例如: www.dlog.cn -> dlog.cn
	 * @param req
	 * @return
	 */
	public static String getDomainOfServerName(String host){
		if(StringUtils.isIPAddr(host))
			return null;
		String[] names = StringUtils.split(host, '.');
		int len = names.length;
		if(len>=2)
			return names[len-2]+'.'+names[len-1];
		return host;
	}
	
	public static void main(String[] args){
		String host = "127.0.0.1";
		System.out.println("DOMAIN: " + getDomainOfServerName(host));		
		host = "dlog.cn";
		System.out.println("DOMAIN: " + getDomainOfServerName(host));		
		host = "abc.mail.dlog.cn";
		System.out.println("DOMAIN: " + getDomainOfServerName(host));		
	}

	/**
	 * 從URL地址中解析出URL前綴,例如
	 * http://wap.mo168.com:8081/index.jsp -> http://wap.mo168.com:8081
	 * @param req
	 * @return
	 */
	public static String getUrlPrefix(HttpServletRequest req){
		StringBuffer url = new StringBuffer(req.getScheme());
		url.append("://");
		url.append(req.getServerName());
		int port = req.getServerPort();
		if(port!=80){
			url.append(":");
			url.append(port);
		}
		return url.toString();
	}
	
	/**
	 * 獲取訪問的URL全路徑
	 * @param req
	 * @return
	 */
	public static String getRequestURL(HttpServletRequest req){
		StringBuffer url = new StringBuffer(req.getRequestURI());
		String param = req.getQueryString();
		if(param!=null){
			url.append('?');
			url.append(param);
		}
		String path = url.toString();
		return path.substring(req.getContextPath().length());
	}

	
	/**
	 * 打印所有的頭信息
	 * @param out
	 * @param req
	 */
	public static void dumpHeaders(PrintStream out, HttpServletRequest req){
		Enumeration names = req.getHeaderNames();
		while(names.hasMoreElements()){
			String name = (String)names.nextElement();
			out.println(name+"="+req.getHeader(name));
		}
	}
	/**
	 * 從請求中解析手機號碼
	 * @param req
	 * @return
	 */
	public static String getRequestMobile(HttpServletRequest req){
		String mobile = default_mobile;
		Iterator keys = header_map.keySet().iterator();
		while(keys.hasNext()){
			String header = (String)keys.next();
			String value = getHeader(req,header);
			if(value!=null){
				String pattern = (String)header_map.get(header);
				MessageFormat mf = new MessageFormat(pattern);
				try{
					Object[] vs = mf.parse(value);
					mobile = (String)vs[0];
					if(mobile.startsWith("86"))
						mobile = mobile.substring(2);
					break;
				}catch(Exception e){
					log.warn("解析header失敗",e);
					dumpHeaders(req, System.err);
					continue;
				}
			}
		}
		return mobile;
	}
	
	/**
	 * 獲取header信息,名字大小寫無關
	 * @param req
	 * @param name
	 * @return
	 */
	public static String getHeader(HttpServletRequest req, String name){
		String value = req.getHeader(name);
		if(value!=null)
			return value;
		Enumeration names = req.getHeaderNames();
		while(names.hasMoreElements()){
			String n = (String)names.nextElement();
			if(n.equalsIgnoreCase(name)){
				return req.getHeader(n);
			}
		}
		return null;
	}
	
	/**
	 * 打印所有頭信息
	 * @param req
	 * @param out
	 */
	public static void dumpHeaders(HttpServletRequest req, PrintStream out){
		Enumeration hds = req.getHeaderNames();
		out.println("=============== HEADERS ===============");
		while(hds.hasMoreElements()){
			String name = (String)hds.nextElement();
			out.println(name+"="+req.getHeader(name));
		}
	}

	/**
	 * 判斷手機是否支持某種類型的格式
	 * @param req
	 * @param contentType
	 * @return
	 */
	public static boolean support(HttpServletRequest req, String contentType){
		String accept = getHeader(req, "accept");
		if(accept!=null){
			accept = accept.toLowerCase();
			return accept.indexOf(contentType.toLowerCase())!=-1;
		}
		return false;
	}
	
	/**
	 * 判斷瀏覽器是否與Mozilla兼容
	 * @param req
	 * @return
	 */
	public static boolean isMozillaCompatible(HttpServletRequest req){
		String user_agent = req.getHeader("user-agent");
		return user_agent==null || user_agent.indexOf("Mozilla")!=-1;
	}

	/**
	 * 獲取瀏覽器提交的整形參數
	 * @param param
	 * @param defaultValue
	 * @return
	 */
	public static int getParam(HttpServletRequest req, String param, int defaultValue){
		try{
			String value = req.getParameter(param);
			int idx = value.indexOf('#');
			if(idx!=-1)
				value = value.substring(0,idx);
			return Integer.parseInt(value);
		}catch(Exception e){}
		return defaultValue;
	}
	/**
	 * 獲取瀏覽器提交的字符串參數
	 * @param param
	 * @param defaultValue
	 * @return
	 */
	public static String getParam(HttpServletRequest req, String param, String defaultValue){
		String value = req.getParameter(param);
		return (StringUtils.isEmpty(value))?defaultValue:value;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青娱乐精品在线视频| 亚洲日本丝袜连裤袜办公室| 成人综合激情网| 一级日本不卡的影视| 日韩欧美久久一区| 色诱视频网站一区| 久久99精品久久只有精品| 一区二区三区在线观看动漫| 2021久久国产精品不只是精品| 91久久精品日日躁夜夜躁欧美| 久久电影网站中文字幕 | 欧美一级精品大片| 99久久婷婷国产综合精品电影| 日韩电影一区二区三区四区| 亚洲视频小说图片| 国产亚洲精品aa| 精品久久国产老人久久综合| 欧美午夜精品一区二区三区| 国产精品123区| 久久精品国产99久久6| 午夜av电影一区| 亚洲精品成a人| 成人欧美一区二区三区| 久久精品在这里| 日韩欧美视频一区| 日韩一区二区三区四区五区六区| 91精品中文字幕一区二区三区| 91看片淫黄大片一级在线观看| 国产mv日韩mv欧美| 精品制服美女丁香| 日韩成人精品在线| 丝袜脚交一区二区| 亚洲高清视频中文字幕| 一区二区三区蜜桃| 亚洲精品一二三四区| 亚洲视频在线一区二区| 国产亚洲1区2区3区| 欧美在线你懂的| 国产在线精品视频| 免费观看在线综合| 日韩黄色片在线观看| 亚洲一卡二卡三卡四卡五卡| 亚洲激情图片qvod| 亚洲一区中文日韩| 婷婷丁香激情综合| 青青草97国产精品免费观看无弹窗版| 日韩在线一区二区| 热久久久久久久| 九九精品一区二区| 国产一区二区三区香蕉| 国产麻豆9l精品三级站| 丁香一区二区三区| aaa欧美日韩| 日本道色综合久久| 欧美麻豆精品久久久久久| 欧美日韩成人激情| 欧美一区二区女人| 久久久久久99久久久精品网站| 久久久久成人黄色影片| 亚洲欧洲av一区二区三区久久| 亚洲蜜臀av乱码久久精品| 国产亚洲美州欧州综合国| 91.麻豆视频| 精品国偷自产国产一区| 久久老女人爱爱| 成人免费在线视频| 三级在线观看一区二区| 精品一区二区在线免费观看| 国产精品影音先锋| 91在线视频免费91| 欧美美女视频在线观看| 亚洲毛片av在线| 亚州成人在线电影| 国产另类ts人妖一区二区| www.欧美色图| 欧美一区二区三区人| 国产丝袜欧美中文另类| 亚洲综合图片区| 国产一区激情在线| 色婷婷综合在线| 日韩精品一区二区三区蜜臀 | 久久精品这里都是精品| **欧美大码日韩| 日韩专区欧美专区| 成人aaaa免费全部观看| 欧美一区二区三区性视频| 国产女主播一区| 亚洲一区二区精品3399| 韩日精品视频一区| 欧美午夜精品一区二区三区| 欧美成人video| 亚洲精品国产一区二区三区四区在线| 免费美女久久99| 色域天天综合网| 久久久不卡网国产精品一区| 亚洲一区二区五区| 国产大片一区二区| 在线91免费看| 亚洲欧美乱综合| 国产一区二区导航在线播放| 在线观看三级视频欧美| 久久久久久久久久久电影| 亚洲18女电影在线观看| 成人国产视频在线观看| 欧美成人video| 日韩精品电影在线观看| 亚洲精品亚洲人成人网在线播放| 久久不见久久见中文字幕免费| 色香蕉久久蜜桃| 国产香蕉久久精品综合网| 日韩高清不卡一区二区三区| 91麻豆视频网站| 国产欧美日韩在线观看| 另类小说欧美激情| 欧美精品久久一区| 亚洲夂夂婷婷色拍ww47| www.在线欧美| 久久久美女艺术照精彩视频福利播放| 在线精品视频免费观看| 日韩精品一区在线观看| 日韩av网站免费在线| 欧美日韩一区成人| 亚洲男人的天堂在线aⅴ视频| 国产成人av自拍| 久久综合狠狠综合久久综合88| 丝袜美腿亚洲综合| 欧美日韩电影在线| 一区二区三区精密机械公司| av电影天堂一区二区在线 | 国产精品第一页第二页第三页| 精品一区二区成人精品| 欧美一级xxx| 日韩电影网1区2区| 69久久夜色精品国产69蝌蚪网| 一区二区三区精品在线| 在线观看区一区二| 一区二区三区久久久| 欧美亚洲一区二区在线观看| 亚洲影院理伦片| 在线观看成人小视频| 亚洲影视在线观看| 欧美日韩精品久久久| 日韩精品欧美成人高清一区二区| 91精品国模一区二区三区| 人人精品人人爱| www日韩大片| 国产iv一区二区三区| 1区2区3区精品视频| 色综合天天在线| 一个色综合av| 欧美精品在线观看播放| 久久国产福利国产秒拍| 国产亚洲综合av| av成人免费在线| 亚洲精品午夜久久久| 欧美丰满高潮xxxx喷水动漫| 日韩激情在线观看| 久久午夜电影网| 97精品久久久久中文字幕| 亚洲一区在线观看免费观看电影高清 | 91美女片黄在线| 午夜视频在线观看一区| 日韩欧美一区电影| 国产精品亚洲人在线观看| 亚洲日本va午夜在线影院| 777欧美精品| 国产在线精品一区二区三区不卡| 国产精品嫩草影院com| 欧洲国内综合视频| 久久99精品久久久久久| 国产精品美女久久久久高潮| 欧美性xxxxx极品少妇| 久久国产三级精品| 亚洲日本va午夜在线影院| 欧美丰满嫩嫩电影| 成人小视频在线| 亚洲成人中文在线| 久久综合中文字幕| 色先锋资源久久综合| 免费看日韩a级影片| 中文字幕一区二区三区乱码在线| 欧美男女性生活在线直播观看| 久久99久久久久久久久久久| 亚洲欧洲av色图| 精品久久一区二区| 色哟哟一区二区在线观看| 精品一区二区三区的国产在线播放| 中文字幕在线播放不卡一区| 日韩一区二区麻豆国产| 色综合一区二区三区| 极品美女销魂一区二区三区| 亚洲综合一区二区三区| 久久久国产午夜精品| 欧美性一级生活| 懂色中文一区二区在线播放| 婷婷亚洲久悠悠色悠在线播放 | 中文字幕五月欧美| 日韩三区在线观看| 欧美综合一区二区| 国产精品国产三级国产aⅴ中文 |