高手帮忙,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对象里,存进数据库
------最佳解决方案--------------------
在java里面,即使你set一个null给对象也不会报异常的。
只有在什么情况下会报异常呢?就是zsz0147所说的那样。
你的对象并没有实例化。即:Visitor v = new Visitor();
如果你没有采用关键字new来实例化这个Visitor 对象的话。
不管你set何值。都会报
空指针异常。
------其他解决方案--------------------我想是不是你要对visitorIp的值进行判断,if(visitorIp==null)visitorIp="";
不知道对不对,新手。
------其他解决方案--------------------struts2的bean中的值不是和jsp上面的属性自动映射的吗?如果是取不到,是不是属性不一致造成的?楼主可以在jsp中用一个隐藏字段存放ip.
------其他解决方案--------------------是哪里报的空指针?
------其他解决方案--------------------或者说,你的spring没有配置这个类?
------其他解决方案--------------------在Action 中 把reqeust 取出来 就一样的用了撒
------其他解决方案--------------------1.
当访问index.jsp 页面时。你可以拦截它。在action中.用request 得到远程的ip地址。
2.
在action是把得到的ip存入数据库.
------其他解决方案-------------------- ip.length() == 0
------其他解决方案-------------------- ip.length() == 0
------其他解决方案--------------------怎么没有人回答我啊,现在我再加分50
------其他解决方案--------------------在往这个visitor中set获取的ip时就报空指针
报怎么个空指针了
------其他解决方案--------------------Visitor 这个类的对像你没有new吧
------其他解决方案--------------------/**
* 获得客户端真是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
------其他解决方案--------------------