首页>代码>Spring Boot爬取携程网站用户评论数据整合mybatis项目案例>/crawlerdata/src/main/java/com/fei/controller/BaseAction.java
package com.fei.controller;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.fei.controller.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;
/**
* @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;
};
}

最近下载
最近浏览