Java-эквивалент C# HttpContext.Current.Items.set/get
Я пытаюсь перевести функциональность API C#, и я получил некоторый код, для которого я не могу найти уверенное решение.
Это касается хранения данных в правильной веб-контекстной области. На данный момент я мог бы решить эту проблему, просто создав HashMap, но, поскольку я не знаю расширенной потребности в данных, хранящихся в этой точке, я хочу пойти на все, пытаясь сделать это правильно. В моей попытке найти решение Java, которое делает то же самое, я наткнулся на область, о которой я раньше не знал, а именно область Flash. Кажется, что это то же самое, что и HttpContext.Current.Items, но я бы определенно оценил второе мнение по этому поводу. Flash Scope - это то, что я обнаружил в игровой структуре.
Кроме того, HttpContext.Current.Items, по-видимому, доступен статическим способом, в то время как java обычно создает экземпляры объектов класса области, например HttpSession.
Могу ли я статически хранить объекты в словарях с заданными областями, как в коде C# ниже? Является ли область действия Flash эквивалентной HttpContext.Current.Items
? Могу ли я получить доступ к Flash Scope без Play Framework?
Как всегда, я также был бы очень признателен, если бы я сделал какие-то неправильные предположения или другие недоразумения.
Спасибо:)
Метод C#
public void setItem(String itemName, Object item) {
HttpContext.Current.Items.set(itemName, item);
}
2 ответа
На этой странице содержится много полезной информации по этому вопросу: http://odetocode.com/articles/111.aspx
Среди наиболее важных линий:
Объект HttpContext будет инкапсулировать конкретные детали одного HTTP-запроса. Свойства этого класса включают в себя объект Request, объект Response, объект Session и свойство AllErrors, которое хранит массив объектов Exception, накопленных во время текущего запроса.
...
Current является статическим свойством, которое будет возвращать объект HttpContext для текущего HTTP-запроса. Вы можете использовать Current из любого объекта в логическом потоке выполнения для запроса
Данные в Items
хотя доступ осуществляется статическим способом, он ограничивается одним запросом. Другими словами, было бы логично предположить, что с помощью javas HttpServletRequest и его методов getAttribute()
а также setAttribute()
, достаточно, однако переведенная структура предназначена для использования в приложениях.