首页>代码>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;
	};
}
最近下载更多
aa991215 LV179月2日
太阳星星
17704627276 LV166月8日
太阳
1529860026 LV234月15日
太阳月亮星星星星星星
geekcjj LV174月4日
太阳星星
dhuashdjhsfhskh LV113月17日
月亮月亮星星星星星星
doutao6677 LV242019年12月17日
太阳月亮月亮
zhoujie123800 LV62019年12月10日
月亮星星星星
儒雅男士 LV72019年10月20日
月亮星星星星星星
我本葬花人葬花亦葬人 LV162019年8月30日
太阳
2224947710 LV172019年7月25日
太阳星星
最近浏览更多
aa991215 LV179月2日
太阳星星
yimengmoshi LV28月23日
星星星星
229336573 LV48月20日
月亮
lalala20208月8日
暂无贡献等级
zrj123456 LV37月28日
星星星星星星
adminuserchenli LV27月10日
星星星星
lkduhuan LV197月10日
太阳星星星星星星
wangfeiyue LV87月3日
月亮月亮
pfb123456 LV76月25日
月亮星星星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友