package com.guwenren.utils;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.codec.binary.Base64;
import org.apache.struts2.ServletActionContext;
import com.guwenren.bean.BuyCart;
import com.guwenren.bean.privilege.Employee;
import com.guwenren.bean.user.Buyer;
/**
* Web帮助类
* @author guwenren
*
*/
public class WebUtil {
/**
* 编码后的URL
*
* @param url
* @return
*/
public static String encodeUrl(String url) {
return new String(Base64.encodeBase64(url.trim().getBytes()));
}
/**
* 解码后的URL
*
* @param url
* @return
*/
public static String decodeUrl(String url) {
return new String(Base64.decodeBase64(url.trim().getBytes()));
}
/**
* 获取购物车
*
* @param request
* @return
*/
public static BuyCart getBuyCart(HttpServletRequest request) {
return (BuyCart) request.getSession().getAttribute("buyCart");
}
/**
* 删除购物车
*
* @param request
* @return
*/
public static void deleteBuyCart(HttpServletRequest request) {
request.getSession().removeAttribute("buyCart");
}
/**
* 获取登录用户
*/
public static Buyer getBuyer(HttpServletRequest request) {
return (Buyer) request.getSession().getAttribute("user");
}
/**
* 获取登录员工
*/
public static Employee getEmployee(HttpServletRequest request){
return (Employee) request.getSession().getAttribute("employee");
}
/***
* 获取URI的路径,如路径为http://www.babasport.com/action/post.htm?method=add,
* 得到的值为"/action/post.htm"
*
* @param request
* @return
*/
public static String getRequestURI(HttpServletRequest request) {
return request.getRequestURI();
}
/**
* 获取完整请求路径(含内容路径及请求参数)
*
* @param request
* @return
*/
public static String getRequestURIWithParam(HttpServletRequest request) {
return getRequestURI(request) + (request.getQueryString() == null ? "" : "?" + request.getQueryString());
}
/**
*
* @param name
* cookie的名称
* @param value
* cookie的值
* @param maxAge
* cookie存放的时间(以秒为单位,假如存放三天,即3*24*60*60; 如果值为0,cookie将随浏览器关闭而清除)
*/
public static void addCookie(String name, String value, int maxAge) {
Cookie cookie = new Cookie(name, value);
cookie.setPath("/");
if (maxAge > 0) {
cookie.setMaxAge(maxAge);
}
ServletActionContext.getResponse().addCookie(cookie);
}
/**
*
* @param name
* cookie的名称
* @return
*/
public static String getCookieByName(String name) {
Map<String, Cookie> cookieMap = WebUtil.readCookieMap();
if (cookieMap.containsKey(name)) {
Cookie cookie = cookieMap.get(name);
return cookie.getValue();
}
return null;
}
/**
*
* @return
*/
private static Map<String, Cookie> readCookieMap() {
Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
Cookie[] cookies = ServletActionContext.getRequest().getCookies();
if (null != cookies) {
for (int i = 0; i < cookies.length; i++) {
cookieMap.put(cookies[i].getName(), cookies[i]);
}
}
return cookieMap;
}
/**
* 去除html代码
*
* @param inputString
* @return
*/
public static String HtmltoText(String inputString) {
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;
java.util.regex.Pattern p_ba;
java.util.regex.Matcher m_ba;
try {
String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>
// }
String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
// }
String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
String patternStr = "\\s+";
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标签
p_ba = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE);
m_ba = p_ba.matcher(htmlStr);
htmlStr = m_ba.replaceAll(""); // 过滤空格
textStr = htmlStr;
} catch (Exception e) {
System.err.println("Html2Text: " + e.getMessage());
}
return textStr;// 返回文本字符串
}
}