Что касается вашей проблемы, все, что вы объявляете локально, используя старомодные скриптлеты, это , а не , связанное с jsp:useBean
. Кроме того, объявление локальной переменной скриптлета не видимым на включенных страницах, вам необходимо явно поместить их как минимум в область запроса. Использование скриплетов - это плохая практика . Рекомендую вообще об этом забыть.
В вашем конкретном случае просто создайте Java-бин real для хранения данных. То есть, класс с (неявным) конструктором по умолчанию и закрытыми свойствами, которые предоставляются публичными получателями / установщиками. Вот основной пример:
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Затем вы можете использовать класс сервлета для предварительной обработки запросов. Для этого вы можете использовать метод doGet()
сервлета.
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
User user = new User();
user.setName("Jitendra");
request.setAttribute("user", user); // Store in request scope.
request.getRequestDispatcher("/WEB-INF/show.jsp").forward(request, response);
}
Отобразите этот сервлет в web.xml
на url-pattern
, например, /show
. Этот сервлет должен быть доступен по http://example.com/context/show
, и его doGet()
будет немедленно выполнен.
Затем измените / создайте файл JSP show.jsp
, который вы поместите в /WEB-INF
, чтобы предотвратить прямой доступ (чтобы клиенты не могли получить к нему доступ http://example.com/context/show.jsp
, но "вынуждены" вызывать сервлет) со следующей строкой :
<p>User name: ${user.name}</p>
${user}
относится к объекту, связанному с любым ключом атрибута запроса / сеанса / приложения user
. Это негласно jspContext.findAttribute("user")
. Поскольку возвращенный экземпляр User
соответствует спецификации javabean, ${user.name}
вызовет метод getName()
для экземпляра User
, и EL отобразит его результат.
О, я должен добавить, вы не нуждаетесь в jsp:useBean
для этого, поскольку сервлет уже создал и поместил нужный бин в область действия.
Тем не менее, я рекомендую начать с приличного учебника / книги по JSP / сервлету. Примеры:
Надеюсь, это поможет.