Если вторая компания рада за то, что вы получили доступ к их контенту в IFrame, тогда им нужно снять ограничение - они могут сделать это довольно легко в конфигурации IIS.
Вы ничего не можете сделать, чтобы обойти это, и все, что работает, должно быстро исправляться в исправлении безопасности. Вы не можете сообщить браузеру, что он просто отображает фрейм, если заголовок исходного содержимого не разрешен в фреймах. Это будет облегчать захват сеанса.
Если контент GET только вы не отправляете данные, тогда вы можете получить сервер страницы и прокси-контент без заголовка, но затем любой пост назад должен быть признан недействительным.
Проблема Iterator
. Как указано в Java doc of PriorityQueue#iterator
Возвращает итератор по элементам в этой очереди. Итератор не возвращает элементы в каком-либо конкретном порядке.
Поскольку
toString
использует итератор, он не будет напечатан в порядке. Или, если вы используете цикл на основе итератора, тогда он будет в порядке.И в Java-документе
PriorityQueue
очередь запросов поиска, удаление, просмотр и элемент доступа к элементу во главе очереди.
Чтобы получить результаты в порядке, вам придется использовать один из этих методов.
Предлагаю вам попробовать следующий пример. Если вы используете PriorityQueue в качестве очереди, записи удаляются в порядке.
import java.util.Comparator;
import java.util.PriorityQueue;
public class Main {
public static void main(String... args) {
PriorityQueue<Flight> flights = new PriorityQueue<Flight>(5, new SortQueueViaPriority());
flights.add(new Flight("0001", 9));
flights.add(new Flight("0002", 7));
flights.add(new Flight("0003", 1));
flights.add(new Flight("0004", 2));
flights.add(new Flight("0005", 1));
while (!flights.isEmpty())
System.out.println(flights.remove());
}
}
class SortQueueViaPriority implements Comparator<Flight> {
@Override
public int compare(Flight f1, Flight f2) {
return Integer.compare(f2.getPriority(), f1.getPriority());
}
}
class Flight {
private final String name;
private final int priority;
Flight(String name, int priority) {
this.name = name;
this.priority = priority;
}
public int getPriority() {
return priority;
}
@Override
public String toString() {
return "Flight{" +
"name='" + name + '\'' +
", priority=" + priority +
'}';
}
}
печатает
Flight{name='0001', priority=9}
Flight{name='0002', priority=7}
Flight{name='0004', priority=2}
Flight{name='0003', priority=1}
Flight{name='0005', priority=1}
Примечание: PriorityQueue сортирует записи таким образом, что только первый элемент будет маленький. Если вы перейдете по очереди, вы увидите все элементы, но они могут быть или не быть в порядке.
Вместо Comparator
просто используйте интерфейс Comparable
.
Класс Flight должен реализовывать интерфейс Comparable. Затем вам необходимо переопределить метод compareTo()
. В этом методе вы можете добавить свою собственную логику для сортировки на основе необходимого вам свойства.
Так же:
@Override
public int compareTo(Object obj) {
// TODO Auto-generated method stub
Flight f = (Flight)obj;
if(this.a <f.a){
return 1;
}else{
return -1;
}
}