Почему некоторые URL-адреса сайтов не содержат расширение файла?

Я считаю, что это потому, что он хранит ссылку на ваш ArrayList, а не копию текущего «состояния» списка на каждой итерации цикла.

Например, вы сначала вставляете ссылку на свой ArrayList, когда он содержит 1 элемент. Затем вы вставляете ссылку на ваш ArrayList, когда он содержит 2 элемента. Оба являются просто ссылками, поэтому, когда вы действительно переходите к следующему Activity, он копирует полный текст ArrayList.

Чтобы это исправить, вы можете делать локальную копию ArrayList каждый раз, когда делаете цикл.

ArrayList<String> sections = new ArrayList<String>();
for(int i=1; i<=last; i++) {
    sections.clear();
    for(j = 0; j < size; j++){
        sections.add(someText);
    }

    // Creating a new local copy of the current list.
    ArrayList<String> newList = newArrayList<>(sections);

    // Inserting the local copy instead.
    ourIntent.putStringArrayListExtra("sections_"+i, newList);
}
27
задан Josh Crozier 3 August 2014 в 18:05
поделиться

3 ответа

То, что вы видите, является примером маршрутизации URL. Вместо указания на конкретный файл (например, page.php) сервер использует таблицу маршрутизации или конфигурацию, которая направляет запрос обработчику, который фактически отображает html (или что-либо еще, в зависимости от возвращенного типа mime). Если вы заметили, StackOverflow использует тот же механизм.

12
ответ дан 28 November 2019 в 04:34
поделиться

Ключом является поле Content-Type заголовка ответа HTTP. Примерно так:

HTTP 200 OK
Content-Type: video/flv
Content-Length: 102345

DATA-DATA-DATA-DATA-DATA-DATA-....

См. Также:

Content-Disposition: attachment; filename=genome.jpeg;
     modification-date="Wed, 12 Feb 1997 16:29:51 -0500";

Подробнее: http://en.wikipedia.org/wiki/MIME

2
ответ дан 28 November 2019 в 04:34
поделиться

Нормальным поведением веб-сервера является сопоставление запрошенного пути URI с файлом где-то в корневом каталоге документа. Таким образом, http://example.com/foo/bar просто отображается на /path/do/document/root/foo/bar. Кроме того, веб-сервер должен знать, как обрабатывать файл. Это часто делается расширением имени файла. Таким образом, файлы с расширением имени файла .php обрабатываются интерпретатором PHP.

Теперь, помимо этого нормального поведения, большинство веб-серверов имеют функции, позволяющие изменять как отображение (т. Е. перезапись URL-адреса ), так и способ обработки файла без расширения имени файла.

В случае веб-сервера Apache первый может быть выполнен с помощью mod_rewrite :

RewriteEngine on
RewriteRule ^/watch$ /watch.php

, а второй может быть выполнен с помощью mod_mime :

<File watch>
    ForceType application/x-httpd-php
</File>

(Хорошо, на самом деле это не функция mod_mime, а функция core .)

1
ответ дан 28 November 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: