Có cách nào trong Spring 3 MVC để truy cập vào thông tin tiêu đề yêu cầu (như địa chỉ IP nguồn, v.v.), khi phân tích cú pháp một yêu cầu trong @Controller không?Truy cập để yêu cầu nguồn IP trong ứng dụng web Spring MVC 3
8
A
Trả lời
37
Bạn có thể truy xuất từ HttpServletRequest
, sử dụng getRemoteAddr()
để có quyền truy cập vào địa chỉ IP của người dùng và getHeader()
để nhận giá trị tiêu đề.
Ví dụ
@Controller
public class MyController {
@RequestMapping(value="/do-something")
public void doSomething(HttpServletRequest request) {
final String userIpAddress = request.getRemoteAddr();
final String userAgent = request.getHeader("user-agent");
....
}
}
Bạn có thể vượt qua các thông số khác với phương pháp doSomething()
, giống như mô hình hoặc yêu cầu params.
Cảm ơn. Tôi thực sự đang bận xóa bài đăng của mình khi tôi nhận được thông báo. Tìm ra. Dù sao cũng cảm ơn bạn! –
nếu khách hàng đứng sau máy chủ proxy thì giải pháp có thể bằng cách sử dụng 'String ip = req.getHeader (" X-FORWARDED-FOR ");' –
và sau đó xử lý nó với điều kiện như 'if (ip == null) ip = request .getRemoteAddr(); ' –