【java工具类】-web工具类获取请求主机名称和域名


/**
 * Web页面相关的操作
 * @author Tom
 *
 */
public class WebUtil {
	
	/**
	 * 输出字符到页面
	 * @param response
	 * @param contentType
	 * @param content
	 */
	private static void out(HttpServletResponse response,String contentType,String content){
		response.setCharacterEncoding("UTF-8");
		response.setContentType(contentType + "; charset=UTF-8");
		try{
			PrintWriter writer = response.getWriter();
			writer = response.getWriter();
			writer.print(content);
			writer.flush();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	/**
	 * 输出json到页面
	 * @param request
	 * @param response
	 * @param json
	 */
	public static void outJsonpToView(HttpServletRequest request,HttpServletResponse response,String json){
			if(null == json){ json = "{\"data\":{}}";}
			String callbackName = request.getParameter("callback");
			String iframe = request.getParameter("iframe");
			String script = request.getParameter("script");
			
			StringBuffer retrunStr = new StringBuffer();
			
			if("1".equals(iframe) || "1".equals(script)){
				
				String domain = request.getParameter("domain");
				if(!(null == domain || "".equals(domain))){
					retrunStr.append("window.document.domain=\"" + domain + "\";");
				}
				
				if("1".equals(iframe)){
					retrunStr.append("<script type=\"text/javascript\">");
					retrunStr.append("window.parent." + ((callbackName == null) ? "callback" : callbackName) + "(" + json + ");");
					retrunStr.append("</script>");
					out(response,"text/html",retrunStr.toString());
				}else if("1".equals(script)){
					JSONObject obj = null;
					try{
						obj = JSONObject.parseObject(json);
					}catch(Exception e){
						out(response,"text/javascript",json);
						return;
					}
				}
			}else{
				out(response,"application/json",((callbackName == null) ? json : (callbackName + "(" + json + ")")));
			}
	}
	
	
	/**
	 * 输出字符串到页面
	 * @param request
	 * @param response
	 * @param str
	 */
	public static void outStringToView(HttpServletRequest request,HttpServletResponse response,String str){
		out(response,"text/text",str);
	}
	
	/**
	 * 输出html到页面
	 * @param request
	 * @param response
	 * @param html
	 */
	public static void outHtmlToView(HttpServletRequest request,HttpServletResponse response,String html){
		out(response,"text/html",html);
	}
	
	/**
	 * 获取domain
	 * @param request
	 * @param response
	 * @return
	 */
	public static String getDomain(HttpServletRequest request){
		String host = request.getServerName().toLowerCase();
		Pattern pattern = Pattern.compile("[^\\.]+(\\.com\\.cn|\\.net\\.cn|\\.org\\.cn|\\.gov\\.cn|\\.com|\\.net|\\.cn|\\.org|\\.cc|\\.me|\\.tel|\\.mobi|\\.asia|\\.biz|\\.info|\\.name|\\.tv|\\.hk|\\.公司|\\.中国|\\.网络)$");
		Matcher matcher = pattern.matcher(host);
		while (matcher.find()) {
			return matcher.group();
		}
		return "";
	}
	
	/**
	 * 获取真实的IP地址
	 * @param request
	 * @return
	 */
	public static String getIpAddr(HttpServletRequest request){
		String ip = request.getHeader("x-forwarded-for");    
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
            ip = request.getHeader("Proxy-Client-IP");    
        }    
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
            ip = request.getHeader("WL-Proxy-Client-IP");    
        }    
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
            ip = request.getRemoteAddr();
        }
        return ip;
	}
	
}
发布了307 篇原创文章 · 获赞 15 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/u011488009/article/details/104469623