Вы можете получить доступ к параметрам параметров одного значения с помощью ${param}
.
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
...
...
...
Обратите внимание, что JSTL fn:escapeXml()
необходим для предотвращения атак XSS. См. Также Предотвращение XSS в веб-приложении JSP / Servlet .
Вы можете получить доступ к параметрам запроса с несколькими значениями с помощью потоков ${paramValues}
и EL 3.0.
v == 'a').get() ? 'checked' : ''} />
v == 'b').get() ? 'checked' : ''} />
v == 'c').get() ? 'checked' : ''} />
...
Чтобы добавить ответ mark4o, вы также можете использовать Device Mapper в Linux для генерации неисправных устройств.
Устройство задержки Device Mapper может использоваться для отправки операций ввода-вывода чтения и записи одного и того же блока на различные базовые устройства (также может задерживать этот ввод-вывод, как следует из его названия). Устройство ошибок Device Mapper может использоваться для генерации постоянных ошибок при обращении к определенному блоку. Комбинируя их, вы можете создать устройство, в котором запись всегда завершается неудачей, но чтение всегда завершается успешно для данной области.
Выше приведен более сложный пример того, что описано в вопросе Имитация неисправного блочного устройства с ошибками чтения? (см. https://stackoverflow.com/a/1871029 для простого примера Device Mapper).
В специальном файле также содержится список механизмов ввода сбоев дисков Linux , который вызывает ошибку ввода-вывода Unix & amp; Вопрос по Linux.
Ядро Linux предоставляет замечательную функцию, называемую «внедрение ошибок»
echo 1 > /sys/block/vdd/vdd2/make-it-fail
Чтобы настроить некоторые параметры:
mkdir /debug
mount debugfs /debug -t debugfs
cd /debug/fail_make_request
echo 10 > interval # interval
echo 100 > probability # 100% probability
echo -1 > times # how many times: -1 means no limit
Есть несколько уровней, на которых можно смоделировать ошибку диска. Если вы тестируете одну программу в пользовательском пространстве, возможно, самый простой подход - вставить соответствующие вызовы (например, write ()
) и заставить их иногда возвращать ошибку. Библиотека libfiu
внедрения ошибок может сделать это с помощью своего инструмента fiu-run
.
Другой подход - использовать драйвер ядра, который может передавать данные к / от другого устройства, но при этом добавляйте неисправности. Затем вы можете смонтировать устройство и использовать его из любого приложения, как если бы это был неисправный диск. Примером этого является драйвер fsdisk .
Существует также инфраструктура внедрения ошибок, которая была объединена с ядром Linux, хотя вам, вероятно, потребуется перенастроить ядро, чтобы включить ее. Он задокументирован в Documentation / fault-injection / fault-injection.txt . Это полезно для тестирования кода ядра.
Также можно использовать SystemTap для внесения ошибок на уровне ядра. См. Тест внедрения ошибок SCSI и Внедрение ошибок ядра с помощью SystemTap .
Простой способ заставить SCSI-диск исчезнуть с ядром 2.6:
echo 1 > /sys/bus/scsi/devices/H:B:T:L/delete
(H: B: T: L - хост, шина, цель, LUN). Тем не менее, чтобы смоделировать случай «только для чтения», вам придется использовать методы внедрения ошибок, упомянутые mark4o.