2013-06-04 2 views
0

Этот вопрос может звучать похоже на

JSP or JavaScript equivalent to PHP's $_SERVER["HTTP_HOST"]?

Но ответы на вопросы, которые являются только выяснить HTTP_HOST.

Мне интересно, можно ли создавать глобальные переменные Sever-wide в JSP.

Пример:

Пользователь 1 вычисляет некоторую функцию пользователя независимую X. Это, вероятно, что другие пользователи тоже могли посетить приложение для вычисления X. Один из способов будет я могу сохранить его в MySql и для последующих запросов пользователей делать поиск db. Но я не хочу использовать какую-либо БД, и мои данные должны сохраняться только в течение всего срока службы сервера.

В PHP я мог бы просто установить $ _SERVER ['x] = значение;

Мне было интересно, если подобная вещь может быть достигнута в JSP.

+0

Приложения JSP являются постоянными в памяти, и вы используете в них язык Java, поэтому характер вашего вопроса предполагает, что вы не знакомы с разработкой Java (поскольку Java имеет статические элементы класса, а JSP - кэширование и управление состоянием).Можете ли вы предоставить более подробную информацию о том, чего вы хотите достичь на практике? – Dai

ответ

0

Я думаю, что самый простой способ добиться этого - просто использовать статические члены любого класса.

1

Короткий ответ заключается в том, что вы можете использовать так называемый Application Scope. Эта область действия будет сохраняться с момента развертывания приложения до остановки контейнера или повторного развертывания приложения.

В сервлетов вы можете использовать его как это:

ServletContext context = request.getSession().getServletContext(); 
String value = "test"; 

// Set value in application scope 
context.setAttribute("x",value); 

// Get value from application scope 
value = (String)context.getAttribute("x"); 

В Scriplets вы можете использовать его, как это (их использование является bad practice):

// Set value in application scope 
application.setAttribute("x",value); 

// Get value from application scope 
value = (String)application.getAttribute("x"); 

В EL вы можете retrive значение как это:

${applicationScope['x']} 

Прибывая из мира PHP, вам нужно будет знать, что в этом бывшем Я использовал объект String, но вы можете использовать любой объект. Вы не можете использовать примитивные типы данных.

Не относится:

  • Если вы работаете над новым проектом, вы должны рассмотреть вопрос о переходе к JSF 2.x, JSP является устаревшим, начиная с 2009 года
  • Прочитайте некоторые Java EE tutorials
+0

Хммм, JSP сам [не устарел] (http://stackoverflow.com/a/4847062/685760) –

+0

@MrMoose _As JSP - это устаревшая технология просмотра с JSF 2.0 в декабре 2009 года [...] _ [источник ] (http://balusc.blogspot.ca/2013/01/apache-shiro-is-it-ready-for-java-ee-6.html) –

+0

Ваш ответ с 2011 года. –

Смежные вопросы