我在自学ssm整合案例[企业权限管理系统]的时候,在做AOP日志,想要获取访问的IP时,获取不到HttpServletRequest对象,我在web.xml中配置了RequestContextListener,但依然报错,我的LogAop也受Spring控制,但就是获取不到。
LogAop 中的代码:
import javax.servlet.http.HttpServletRequest;
@Component
@Aspect
public class LogAop {
@Autowired
private HttpServletRequest request;
//获取访问的IP
String ip = request.getRemoteAddr();
sysLog.setIp(ip);
//调用Service完成操作
sysLogService.save(sysLog);
}
web.xml中的代码:
添加了
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
我在父工程下也导入servlet的坐标了,运行依旧错误。
父工程install不报错。谢谢大家。
从容器里面注入 HttpServletRequest 是什么操作,没见过这样操作的;
HttpServletRequest 是每个线程独立的,即使你监听到HttpServletRequest 生成并注入到容器里面去,@Autowired 这样获取也不对