最代码广告位
首页>分享>Spring Boot整合邮件发送并保存历史发送邮箱>/springboot-email/src/main/java/com/gstarcad/controller/BaseAction.java
package com.gstarcad.controller;

import com.gstarcad.model.ResultVO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * @Author: fengzf fengzf@gstarcad.com
 * @MethodName:
 * @@Description: 
 * @params  
 * @return 
 * @Date:  2018/8/1 15:38 
 */  
@Controller
@Scope("prototype")
public class BaseAction {

	protected transient final Log logger = LogFactory.getLog(getClass());

	protected HttpServletRequest request;
	protected HttpServletResponse response;
	protected HttpSession session;
	


	@ModelAttribute
	public void setReqAndRes(HttpServletRequest request,
			HttpServletResponse response) {
		this.request = request;
		this.response = response;
		this.session = request.getSession();
	}



	/**
	 * Convenience method to get the request
	 * 
	 * @return current request
	 */
	protected HttpServletRequest getRequest() {
		return request;
	}

	/**
	 * Convenience method to get the response
	 * 
	 * @return current response
	 */
	protected HttpServletResponse getResponse() {
		return response;
	}


	/**
	 * Convenience method to get the session. This will create a session if one
	 * doesn't exist.
	 * 
	 * @return the session from the request (request.getSession()).
	 */
	protected HttpSession getSession() {
		return getRequest().getSession();
	}


	public static String getIpAddr(HttpServletRequest request) {
		String ipAddress = request.getHeader("X-Real-IP");
		if (ipAddress == null || ipAddress.length() == 0
				|| "unknown".equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader("X-Forwarded-For");
		}

		if (ipAddress == null || ipAddress.length() == 0
				|| "unknown".equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader("Proxy-Client-IP");
		}
		if (ipAddress == null || ipAddress.length() == 0
				|| "unknown".equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader("WL-Proxy-Client-IP");
		}
		if (ipAddress == null || ipAddress.length() == 0
				|| "unknown".equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getRemoteAddr();
			if (ipAddress.equals("127.0.0.1")
					|| ipAddress.equals("0:0:0:0:0:0:0:1")) {
				// 根据网卡取本机配置的IP
				InetAddress inet = null;
				try {
					inet = InetAddress.getLocalHost();
				} catch (UnknownHostException e) {
					e.printStackTrace();
				}
				ipAddress = inet.getHostAddress();
			}
		}
		// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
		if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
															// = 15
			if (ipAddress.indexOf(",") > 0) {
				ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
			}
		}
		return ipAddress;
	}

	/**
	 * 返回 context path
	 * 
	 * @return
	 */
	public String getBasePath() {
		StringBuffer ctx = new StringBuffer();

		ctx.append(request.getScheme() + "://" + request.getServerName());
		if (request.getScheme().equals("https")) {
			if (request.getServerPort() != 443) {
				ctx.append(":" + request.getServerPort());
			}
		} else if (request.getScheme().equals("http")) {
			if (request.getServerPort() != 80) {
				ctx.append(":" + request.getServerPort());
			}
		}else{
			ctx.append(":" + request.getServerPort());
		}
		ctx.append(request.getContextPath());
		return ctx.toString();
	}

	/**
	 * 操作成功
	 * @param data
	 * @return
	 */
	protected ResultVO operateSuccessFul(String msg, Object data){
		ResultVO vo = new ResultVO();
		vo.setStatus(true);
		vo.setMsg(msg);
		vo.setData(data);
		return vo;
	};

	/**
	 * 操作成功
	 * @return
	 */
	protected ResultVO operateSuccessFul(String msg){
		ResultVO vo = new ResultVO();
		vo.setStatus(true);
		vo.setMsg(msg);
		return vo;
	};

	/**
	 * 操作成功
	 * @return
	 */
	protected ResultVO operateFail(String msg){
		ResultVO vo = new ResultVO();
		vo.setStatus(false);
		vo.setMsg(msg);
		return vo;
	};
}
最近下载更多
doutao6677 LV232019年12月17日
太阳月亮星星星星星星
zhoujie123800 LV52019年12月10日
月亮星星
儒雅男士 LV72019年10月20日
月亮星星星星星星
我本葬花人葬花亦葬人 LV162019年8月30日
太阳
2224947710 LV172019年7月25日
太阳星星
wang_d LV122019年7月10日
月亮月亮月亮
qibodong LV132019年7月2日
月亮月亮月亮星星
zhanghuohuo LV192019年6月3日
太阳星星星星星星
xlhxlh LV192019年5月30日
太阳星星星星星星
朋克刘116 LV62019年5月9日
月亮星星星星
最近浏览更多
大谷粒 LV1昨天
星星
淡然匆匆 LV62月9日
月亮星星星星
houliukou LV322月4日
太阳太阳
jxzzyypp LV52月2日
月亮星星
令狐冲35 LV61月26日
月亮星星星星
654874339 LV21月17日
星星星星
WWWWDFSADFSDCccc LV41月15日
月亮
liuyanling LV41月14日
月亮
小蜗9181月10日
暂无贡献等级
fuhuatao LV11月8日
星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友