高手帮忙,struts2获取客户端ip并存入数据库
现在,我想把访问者的ip获取到,并存入数据库,我想用户已访问index.jsp就记录到数据库,但是不知道用什么方法,是不是用拦截器啊,我没有玩过拦截器,大家帮忙一下,最好说清楚一点,小弟在此感谢了,
我先前写了一个现在已经可以获取到了ip了
HttpServletRequest req=(HttpServletRequest)ServletActionContext.getRequest();
String visitorIp=req.getRemoteAddr();
String visitorhost = req.getRemoteHost();
int visitorPort=req.getRemotePort();
String visitorUsername=req.getRemoteUser();
String visitorUrl=req.getRequestURI();
可以System.out.println("访问者的ip是"+visitorIp);出来
但是我想保存到我的数据库,又报开空指针了
我的环境是s2sh的我写了个Visitor的javabean代码如下
public class Visitor {
private Integer id;
private String ipaddress;
private Date date;
private String host;
private String url;
省了getter和setter方法
我现在往这个visitor中set获取的ip时就报空指针
请大家帮帮忙,主要告我一下拦截器这么用在这里,还有就是获取到ip后这么放到visitor对象里,存进数据库
[最优解释]
/**
* 获得客户端真是ip
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null
[其他解释]
"unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null
------其他解决方案--------------------
ip.length() == 0
[其他解释]
"unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null
[其他解释]
留名,查看结果。。。。
[其他解释]
"unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}