• Web层辅助工具类


     

     Java web开发中经常用到的一些方法:

    import java.io.BufferedReader;
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    import java.util.List;
    import java.util.Map;
    import java.util.ResourceBundle;
    
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    
    import org.apache.commons.lang3.StringUtils;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.session.InvalidSessionException;
    import org.apache.shiro.session.Session;
    import org.apache.shiro.subject.Subject;import org.springframework.web.util.WebUtils;
    
    import com.alibaba.fastjson.JSON;
    
    /**
     * Web层辅助类*/
    public final class WebUtil {
    private WebUtil() { } private static Logger logger = LogManager.getLogger();
    public static final String CURRENT_USER = "CURRENT_USER";
    /** * 获取指定Cookie的值 * * @param cookies * cookie集合 * @param cookieName * cookie名字 * @param defaultValue * 缺省值 * @return */ public static final String getCookieValue(HttpServletRequest request, String cookieName, String defaultValue) { Cookie cookie = WebUtils.getCookie(request, cookieName); if (cookie == null) { return defaultValue; } return cookie.getValue(); } /** 保存当前用户 */ public static final void saveCurrentUser(Object user) { setSession(CURRENT_USER, user); } /** 保存当前用户 */ public static final void saveCurrentUser(HttpServletRequest request, Object user) { setSession(request, CURRENT_USER, user); } /** 获取当前用户 */ public static final Long getCurrentUser() { Subject currentUser = SecurityUtils.getSubject(); if (null != currentUser) { try { Session session = currentUser.getSession(); if (null != session) { return (Long) session.getAttribute(CURRENT_USER); } } catch (InvalidSessionException e) { logger.error(e); } } return null; } /** 获取当前用户 */ public static final Object getCurrentUser(HttpServletRequest request) { try { HttpSession session = request.getSession(); if (null != session) { return session.getAttribute(CURRENT_USER); } } catch (InvalidSessionException e) { logger.error(e); } return null; } /** * 将一些数据放到ShiroSession中,以便于其它地方使用 * * @see 比如Controller,使用时直接用HttpSession.getAttribute(key)就可以取到 */ public static final void setSession(Object key, Object value) { Subject currentUser = SecurityUtils.getSubject(); if (null != currentUser) { Session session = currentUser.getSession(); if (null != session) { session.setAttribute(key, value); } } } /** * 将一些数据放到ShiroSession中,以便于其它地方使用 * * @see 比如Controller,使用时直接用HttpSession.getAttribute(key)就可以取到 */ public static final void setSession(HttpServletRequest request, String key, Object value) { HttpSession session = request.getSession(); if (null != session) { session.setAttribute(key, value); } } /** 移除当前用户 */ public static final void removeCurrentUser(HttpServletRequest request) { request.getSession().removeAttribute(CURRENT_USER); } /** * 获得国际化信息 * * @param key * 键 * @param request * @return */ public static final String getApplicationResource(String key, HttpServletRequest request) { ResourceBundle resourceBundle = ResourceBundle.getBundle("ApplicationResources", request.getLocale()); return resourceBundle.getString(key); } /** * 获得参数Map * * @param request * @return */ public static final Map<String, Object> getParameterMap(HttpServletRequest request) { return WebUtils.getParametersStartingWith(request, null); } @SuppressWarnings("unchecked") public static Map<String, Object> getParameter(HttpServletRequest request) { String str, wholeStr = ""; try { BufferedReader br = request.getReader(); while ((str = br.readLine()) != null) { wholeStr += str; } if (StringUtils.isNotBlank(wholeStr)) { return JSON.parseObject(wholeStr, Map.class); } } catch (Exception e) { logger.error("", e); } return getParameterMap(request); } public static <T> T getParameter(HttpServletRequest request, Class<T> cls) { String str, wholeStr = ""; try { BufferedReader br = request.getReader(); while ((str = br.readLine()) != null) { wholeStr += str; } if (StringUtils.isNotBlank(wholeStr)) { return JSON.parseObject(wholeStr, cls); } } catch (Exception e) { logger.error("", e); } return Request2ModelUtil.covert(cls, request); } @SuppressWarnings("unchecked") public static <T> List<T> getParameters(HttpServletRequest request, Class<T> cls) { String str, wholeStr = ""; try { BufferedReader br = request.getReader(); while ((str = br.readLine()) != null) { wholeStr += str; } if (StringUtils.isNotBlank(wholeStr)) { return JSON.parseObject(wholeStr, List.class); } } catch (Exception e) { logger.error("", e); } return Request2ListUtil.covert(cls, request); } /** 获取客户端IP */ public static final String getHost(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip != null && ip.indexOf(",") > 0) { // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 ip = ip.substring(0, ip.indexOf(",")); } if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("X-Real-IP"); } if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) { InetAddress inet = null; try { inet = InetAddress.getLocalHost();
    ip = inet.getHostAddress(); }
    catch (UnknownHostException e) { logger.error(e); } } return ip; } }
  • 相关阅读:
    angularjs 输入框智能提示typeahead
    angularjs学习笔记--组件、$http、$q、module
    angularjs学习笔记--服务
    angularjs 学习笔记---小乱乱
    openURL调用其他程序(转)
    iOS6 中 Smart App Banners介绍和使用(转自COCOACHINA.COM)
    iOS 应用中打开其他应用 (转)
    IOS端的摇一摇功能
    IOS 应用官方接口地址
    本地推送UILocalNotification(转)
  • 原文地址:https://www.cnblogs.com/yzuzhang/p/3169732.html
Copyright © 2020-2023  润新知