我有一个项目
https://github.com/CarefreeCoding/Gradle-Spring-Hibernate-example
我希望能够获得访问者的IP地址。要做到这一点,我需要使用HttpServletRequest
,因为我通过搜索找到了。
但似乎找不到javax.servlet
库。
我已尝试在我的build.gradle脚本中包含'javax.servlet:servlet-api:2.5'
,但这会在this question中解释我的项目。
所以问题是。我怎样才能使用
中的库 'org.springframework:spring-core:4.1.2.RELEASE',
'org.springframework:spring-web:4.1.2.RELEASE',
'org.springframework:spring-webmvc:4.1.2.RELEASE',
'org.springframework:spring-orm:4.1.2.RELEASE',
'org.springframework:spring-context:4.1.2.RELEASE',
'org.springframework:spring-tx:4.1.2.RELEASE'
获取访问者的IP地址?或者至少以某种方式访问HttpServletRequest。
答案 0 :(得分:1)
使用以下方式修改 build.gradle :
providedCompile 'javax.servlet:javax.servlet-api:3.1.0' //configuration taken from war plugin
//below dependencies added because the app wasn't starting properly
compile 'ch.qos.logback:logback-classic:1.0.13'
compile 'ch.qos.logback:logback-core:1.0.13'
compile 'log4j:log4j:1.2.17'
compile 'org.slf4j:slf4j-api:1.7.5'
compile 'org.slf4j:jcl-over-slf4j:1.7.5'
compile 'org.slf4j:jul-to-slf4j:1.7.5'
compile 'org.slf4j:slf4j-log4j12:1.7.5'
然后修改src/main/java/example/controllers/IndexController.java
:
package example.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping("/")
public class IndexController {
@RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap model, HttpServletRequest request) {
System.out.println("Request " + request.getRemoteAddr());
model.addAttribute("message", "Hello World!!!");
return "indexPage";
}
}
打印请求0:0:0:0:0:0:0:1
答案 1 :(得分:0)
正如other问题中所述,您已经在项目中使用了servlet-api,无需在项目定义中添加javax.servlet:servlet-api:2.5。
因此,您将能够access HttpServletRequest。
但是,正如other问题中所提到的,你有servlet-api的版本3.0.1,它不包含getRemoteAddr()方法,如果这是你想要使用的。