HttpUtils

 

package util;

import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.regex.Pattern;

import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.lang.StringUtils;

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

/**
 * Created by zhangchi9 on 2016/10/18.
 */
public class HttpUtils {
    /**
     * ajax 请求
     * @param response
     * @param msg
     * @throws Exception
     */
    public static void writeJson(HttpServletResponse response,String msg)throws Exception{
        response.setCharacterEncoding("utf-8");
        response.setHeader("accept","text/html");
        response.setContentType("text/html;charset=utf-8");
        Writer writer = response.getWriter();
        writer.write(msg);
        writer.flush();
        writer.close();
    }

    /**
     * 创建cookie
     * @param response
     * @param name
     * @param value
     * @param maxAge   设置以秒为这个cookie的最长期限。
     * @param path     指定该客户端应返回的cookie的cookie的路径
     * @param domain   指定要在其中显示此cookie应该提交的域。
     * @return
     */
    public static Cookie setCookie( HttpServletResponse response, String name, String value, int maxAge, String path, String domain) {
        Cookie cookie = new Cookie(name, value);
        cookie.setMaxAge(maxAge);
        if (path != null) {
            cookie.setPath(path);
        }
        cookie.setDomain(domain);
        response.addCookie(cookie);

        return cookie;
    }

    /**
     * 更新cookie
     * @param request
     * @param response
     * @param name
     * @param maxAge   设置以秒为这个cookie的最长期限。
     * @param path     指定该客户端应返回的cookie的cookie的路径
     * @param domain   指定要在其中显示此cookie应该提交的域。
     * @return
     */
    public static Cookie updateCookie( HttpServletRequest request,HttpServletResponse response, String name,int maxAge, String path, String domain) {
        Cookie cookie=getCookie(request, name);
        if(cookie!=null){
            if (path != null) {
                cookie.setPath(path);
            }
            cookie.setDomain(domain);
            cookie.setMaxAge(maxAge);
            response.addCookie(cookie);
        }
        return cookie;
    }

    /**
     * 清空cookie
     * @param request
     * @param response
     * @param name
     * @param maxAge   设置以秒为这个cookie的最长期限。
     * @param path     指定该客户端应返回的cookie的cookie的路径
     * @param domain   指定要在其中显示此cookie应该提交的域。
     * @return
     */
    public static Cookie cleanCookie(HttpServletRequest request,HttpServletResponse response, String name,int maxAge, String path, String domain){
        Cookie cookie = getCookie(request, name);
        if(cookie!=null){
            cookie.setMaxAge(maxAge);
            cookie.setValue(null);
            if (path != null) {
                cookie.setPath(path);
            }
            cookie.setDomain(domain);
            response.addCookie(cookie);
        }

        return cookie;
    }

    /**
     * 获取cookie对象
     * @param request
     * @param name
     * @return
     */
    public static  Cookie getCookie(HttpServletRequest request,String name){
        Cookie[] cookies=request.getCookies();
        if (cookies!=null && cookies.length>0){
            for(int i=0;i<cookies.length;i++){
                if (name.equalsIgnoreCase(cookies[i].getName())){
                    return cookies[i];
                }
            }
        }
        return null;
    }

    /**
     * 获取cookie值
     * @param request
     * @param name
     * @return
     */
    public static String getCookieValue(HttpServletRequest request,String name){
        Cookie cookie = getCookie(request,name);
        if (cookie!=null){
            return cookie.getValue();
        }
        return null;
    }
    /**
     * 过滤 html
     * @param inputString
     * @return
     */
    public static String html2Text(String inputString) {
        if(StringUtils.isBlank(inputString)){
            return "";
        }
        String htmlStr = inputString; // 含html标签的字符串
        String textStr = "";
        java.util.regex.Pattern p_script;
        java.util.regex.Matcher m_script;
        java.util.regex.Pattern p_style;
        java.util.regex.Matcher m_style;
        java.util.regex.Pattern p_html;
        java.util.regex.Matcher m_html;
        try {
            // 定义script的正则表达式{或<script>]*?>[\s\S]*?<\/script>
            // }
            String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>";
            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style>]*?>[\s\S]*?<\/style>
            // }
            String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式

            p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
            m_script = p_script.matcher(htmlStr);
            htmlStr = m_script.replaceAll(""); // 过滤script标签

            p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
            m_style = p_style.matcher(htmlStr);
            htmlStr = m_style.replaceAll(""); // 过滤style标签

            p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
            m_html = p_html.matcher(htmlStr);
            htmlStr = m_html.replaceAll(""); // 过滤html标签

            textStr = htmlStr;

        } catch (Exception e) {
            textStr = "";
        }
        return textStr;
    }
   /**
     * 获取用户真实ip
     * @param request
     * @return
     */
    public static String getIp(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        if (com.jd.common.util.StringUtils.isNotBlank(ip) && !"unKnown".equalsIgnoreCase(ip)) {
            // 多次反向代理后会有多个ip值,第一个ip才是真实ip
            int index = ip.indexOf(",");
            if (index != -1) {
                return ip.substring(0, index);
            } else {
                return ip;
            }
        }
        ip = request.getHeader("X-Real-IP");
        if (!com.jd.common.util.StringUtils.isBlank(ip) && !"unKnown".equalsIgnoreCase(ip)) {
            return ip;
        }
        return request.getRemoteAddr();
    }
}

 

转载于:https://my.oschina.net/zhangshuge/blog/761493

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值