/*
/*
на сервлете переопределяет все другие сервлеты, включая все сервлеты, предоставленные сервером сервлетов, такие как сервлет по умолчанию и сервлет JSP. Какой бы запрос вы ни стреляли, он попадет в этот сервлет. Таким образом, это плохой шаблон URL для сервлетов. Обычно вы хотите использовать /*
только на Filter
. Он может разрешить запросу любой сервлет, прослушивающий более конкретный шаблон URL, вызывая FilterChain#doFilter()
.
/
/
не отменяет никакого другого сервлета. Он заменяет только встроенный сервлет servletcontainer по умолчанию для всех запросов, которые не соответствуют никакому другому зарегистрированному сервлету. Обычно это делается только для статических ресурсов (CSS / JS / image / etc) и списков каталогов. Встроенный по умолчанию сервлет servletcontainer также способен обрабатывать запросы HTTP-кеша, потоковое воспроизведение мультимедиа (аудио / видео) и возобновление загрузки файлов. Как правило, вы не хотите переопределять сервлет по умолчанию, как в противном случае вам приходилось бы заботиться обо всех своих задачах, что не совсем тривиально (библиотека JSF-утилиты OmniFaces имеет с открытым исходным кодом пример ). Это, таким образом, также плохой шаблон URL для сервлетов. Что касается того, почему страницы JSP не попадают в этот сервлет, это происходит из-за того, что будет запущен встроенный JSP-сервлет servletcontainer, который по умолчанию отображается на более конкретном шаблоне URL *.jsp
.
Тогда есть также пустая строка URL-адреса . Это будет вызвано при запросе корня контекста. Это отличается от подхода
, что он не вызывается, когда запрашивается любая вложенная папка. Скорее всего, это шаблон URL, который вы на самом деле ищете, если вам нужен сервлет домашней страницы ". Я должен только признать, что интуитивно ожидаю, что пустая строка URL-шаблона и шаблон косой черты
/
будут определены точно так же, как и наоборот, поэтому я могу понять, что многие пускатели путались в этом.
Если вы на самом деле намереваетесь иметь сервлет суперконтроллера, тогда вам лучше всего его сопоставить более конкретный шаблон URL, например *.html
, *.do
, /pages/*
, /app/*
и т. д. Вы можете скрыть шаблон URL-адреса переднего контроллера и покрыть статические ресурсы на общем шаблоне URL, например /resources/*
, /static/*
, и т. д. с помощью фильтра сервлетов. См. Также . Как предотвратить использование статических ресурсов сервлетом переднего контроллера, который отображается на / * . Следует отметить, что Spring MVC имеет встроенный статический сервлет ресурсов, поэтому вы можете сопоставить его фронт-контроллер на /
, если вы настроили общий шаблон URL для статических ресурсов в Spring. См. Также Как обрабатывать статический контент в Spring MVC?
Я понял это. Установка '.my-flex-row' с 'с: 100%;' и «flex-basis: auto;», он дает мне строку с тремя предметами внутри по желанию. Установка «.my-flex-item-content» с «align-content: flex-end»; нет промежутков.
Вы должны удалить свойство flex-grow из .my-flex-item-content
и добавить margin-top:auto;
. http://jsfiddle.net/zv56fak7/13/
.my-flex-item-content {
margin-top:auto;
align-items: baseline;
align-items: flex-end;
background-color: rebeccapurple;
display: flex;
flex-wrap: wrap;
}
Также обратите внимание на заполнение и размер окна, если это проблема
.my-flex-item-wrapper {
width: 33%;
padding: 5px;
display: flex;
box-sizing:border-box;
}