Вам не требуется ViewResolver. pom.xml нуждается в указанных зависимостях, как сказал Юра, и поместите файлы jsp в src \ main \ webapp \ WEB-INF \ jsp.
Java не делает это столь же приятным как другие языки, к сожалению. Вот то, что я сделал:
import java.io.*;
import java.util.*;
public class ExecTest {
public static void main(String[] args) throws IOException {
Process result = Runtime.getRuntime().exec("traceroute -m 1 www.amazon.com");
BufferedReader output = new BufferedReader(new InputStreamReader(result.getInputStream()));
String thisLine = output.readLine();
StringTokenizer st = new StringTokenizer(thisLine);
st.nextToken();
String gateway = st.nextToken();
System.out.printf("The gateway is %s\n", gateway);
}
}
Это предполагает, что шлюз является вторым маркером а не третьим. Если это, необходимо добавить дополнительное st.nextToken();
для усовершенствования токенизатора еще одно пятно.
Можно запросить URL" http://whatismyip.com/automation/n09230945.asp ". Например:
BufferedReader buffer = null;
try {
URL url = new URL("http://whatismyip.com/automation/n09230945.asp");
InputStreamReader in = new InputStreamReader(url.openStream());
buffer = new BufferedReader(in);
String line = buffer.readLine();
System.out.println(line);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (buffer != null) {
buffer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Испытайте окружение к traceroute, если у Вас есть он.
'traceroute-m 1 www.amazon.com' испустит что-то вроде этого:
traceroute to www.amazon.com (72.21.203.1), 1 hops max, 40 byte packets
1 10.0.1.1 (10.0.1.1) 0.694 ms 0.445 ms 0.398 ms
Синтаксический анализ вторая строка. Да, это ужасно, но это получит Вас идущий, пока кто-то не отправит что-то более хорошее.
Преодолеть проблемы упомянуло с traceroute (основанный на ICMP, широкий хит области), Вы могли рассмотреть:
Это не столь легко, как это звучит. Java независим от платформы, таким образом, я не уверен, как сделать это в Java. Я предположение , что.NET связывается с некоторым веб-сайтом, который сообщает его. Существует пара способов пойти. Во-первых, более глубокое изучают протокол ICMP, может дать Вам информацию, в которой Вы нуждаетесь. Можно также проследить IP, который Вы проходите (Ваш маршрут). Когда Вы встречаетесь с IP, который не находится в следующих диапазонах:
это - IP один транзитный участок далеко от Вашего и вероятно совместно использует несколько октетов информации с Вашим IP.
Всего наилучшего. Мне будет любопытно услышать категорический ответ на этот вопрос.
Matthew: Да, под именно это я подразумевал, "Я могу получить свой интернет-IP с помощью сервиса на веб-сайт". Извините за то, чтобы быть бойким.
Brian/Nick: Traceroute был бы прекрасен за исключением того, что большому количеству этих маршрутизаторов отключили ICMP, и таким образом он всегда останавливается.
я думаю, комбинация traceroute и uPnP удастся. Именно это я был планированием выполнения, я как просто надежда, что я пропускал что-то очевидное.
Благодарят Вас все за Ваши комментарии, таким образом, это кажется, что я не пропускаю ничего очевидного. Я начал реализовывать некоторые биты uPnP для обнаружения шлюза.
Относительно UPnP: знайте, что не все маршрутизаторы поддерживают UPnP. И если они делают это могло бы быть выключено (из соображений безопасности). Таким образом, Ваше решение не могло бы всегда работать.
необходимо также взглянуть на NatPMP.
А простая библиотека для UPnP может быть найдена в http://miniupnp.free.fr/ , хотя это находится в C...
Можно быть более обеспеченным использованием чего-то как checkmyip.org, который определит общедоступный IP-адрес - не обязательно первый маршрутизатор транзитного участка: в Uni у меня есть "реальный" IP-адрес, тогда как дома это - общедоступный IP-адрес моего локального маршрутизатора.
можно проанализировать страницу, которая возвращается, или найдите другой сайт, который позволяет Вам просто возвращать IP-адрес как единственную строку.
(я имею в виду, загружают этот URL в Java/независимо от того, что и затем получают информацию, в которой Вы нуждаетесь).
Это должно быть полностью независимо от платформы.
На окнах, анализирующих вывод IPConfig, получит Вас шлюз по умолчанию, не ожидая трассировки.
try{
Process result = Runtime.getRuntime().exec("netstat -rn");
BufferedReader output = new BufferedReader(new InputStreamReader(result.getInputStream()));
String line = output.readLine();
while(line != null){
if ( line.startsWith("default") == true )
break;
line = output.readLine();
}
StringTokenizer st = new StringTokenizer( line );
st.nextToken();
gateway = st.nextToken();
st.nextToken();
st.nextToken();
st.nextToken();
adapter = st.nextToken();
} catch( Exception e ) {
System.out.println( e.toString() );
gateway = new String();
adapter = new String();
}
В Windows, OSX, Linux, и т.д. затем ответ Chris Bunch может быть очень улучшен при помощи [1 117]
netstat -rn
вместо traceroute
команда.
IP-адрес Вашего шлюза появится во втором поле строки, которая запускается или default
или 0.0.0.0
.
Это обходит много проблем с попыткой использовать traceroute
:
traceroute
на самом деле tracert.exe
, таким образом, нет никакой потребности в зависимостях O/S в коде traceroute
иногда блокируется сетью , единственный недостаток - то, что будет необходимо продолжать читать строки из эти netstat
вывод, пока правильная строка не будет найдена, так как будет больше чем одна строка вывода.
РЕДАКТИРОВАНИЕ: IP-адрес Шлюза По умолчанию находится во втором поле строки, которая запускается со 'значения по умолчанию', если Вы находитесь на MAC (протестированы на Льве), или в третье поле строки, которая запускается с '0.0.0.0' (протестированный в Windows 7)
Windows:
Сетевая Целевая Метрика Интерфейса Шлюза Сетевой маски
0.0.0.0 0.0.0.0 192.168.2.254 192.168.2.46 10
Mac:
Использование Судей Флагов Целевого шлюза Netif Истекают
значение по умолчанию 192.168.2.254 UGSc 104 4 en1
вывод команды netstat -rn зависит от региона. в моей системе (locale = de) вывод выглядит так: ... Standardgateway: 10.22.0.1
, поэтому нет строки, начинающейся с 'default'.
, поэтому использование netstat может оказаться не очень хорошей идеей.