Thông tin này là dựa trên yêu cầu và không áp dụng nghiêm ngặt. Nó có thể là thay đổi theo yêu cầu. Tất cả những gì bạn có trong tay khi khởi tạo servlet là cá thể ServletContext
mà lần lượt cung cấp các phương thức như getInitParameter()
. Bạn có thể sử dụng nó để truy cập vào các thiết lập ứng dụng rộng.
Vì vậy, đặt cược tốt nhất của bạn là để tự đặt tên máy chủ như một tham số bối cảnh trong web.xml
<context-param>
<param-name>serverName</param-name>
<param-value>foo</param-value>
<context-param>
để bạn có thể có được nó như sau trong phương pháp init()
servlet của:
String serverName = getServletContext().getInitParameter("serverName");
khác (không được đề xuất) thay thế là đặt tên hiển thị đó là web.xml
<display-name>foo</display-name>
để bạn có thể có được nó như sau:
String serverName = getServletContext().getServletContextName();
Có vấn đề gì không nếu tôi gọi java.net.InetAddress.getLocalHost(). GetCanonicalHostName() để lấy tên máy chủ? –
có, khi bạn có tên bí danh cho máy chủ của mình. Ví dụ: ứng dụng của bạn có thể hiển thị dưới dạng 'http: // www.google.com /' trong khi sử dụng 'getCanonicalHostName()' có thể cung cấp cho bạn 'http: // nuq05s02-in-f18.1e100.net /' –