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;// 返回文本字符串 } }