Как сделать ArrayList доступным на всех страницах jsp и servlet в веб-приложении - PullRequest
1 голос
/ 12 июня 2019

У меня есть веб-приложение jsp + servlets. Я хочу, чтобы ArrayList был доступен на всех страницах jsp и servlet, которые отличаются для каждого вошедшего в систему пользователя. Когда пользователь входит в веб-приложение, у меня есть некоторые роли, назначенные пользователю, в соответствии с ролью, которой ему назначены некоторые разрешения в веб-приложении. Я имею в виду, что веб-приложение трансформируется в соответствии с ролью пользователя и разрешениями. Например, некоторые операции могут быть только для некоторых ролей и т. Д. Поэтому я хочу выполнить запрос при входе в систему (только один раз) и сохранить все разрешения в списке массивов и получить этот список массивов на всех страницах jsp и servlet. Как я могу это сделать.

public class Role implements SingleThreadModel{

    Connection connection = null;
    Statement statement = null;
    IST ist;
    int user_id;

    public Role(int user_id, Connection connection) {
        try {
            this.user_id = user_id;
            this.connection = connection;
            statement = connection.createStatement();
            ist = new IST();
        } catch (SQLException ex) {
            Logger.getLogger(Role.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public List<String> getPermissionScreens() {
        List<String> myList = new ArrayList<>();
        try {
            String sql = "";
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                myList.add(resultSet.getString("screen_name"));
            }

        } catch (SQLException ex) {
            Logger.getLogger(Role.class.getName()).log(Level.SEVERE, null, ex);
        }
        return myList;
    }

    public List<String> getPermissions(String screen) {
        List<String> myList = new ArrayList<>();
        try {
            String sql = "";
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                myList.add(resultSet.getString("permission_name"));
            }

        } catch (SQLException ex) {
            Logger.getLogger(Role.class.getName()).log(Level.SEVERE, null, ex);
        }
        return myList;
    }
}

1 Ответ

0 голосов
/ 12 июня 2019

Полагаю, вы можете сохранить список roleList в сеансе и поиграть со списком в соответствии с вашими требованиями. Вы можете легко получить доступ из jsp, используя

<%= request.getAttribute("MyAttribute"); %>

Аналогичным образом, если вы хотите установить атрибут сеанса из jsp, используйте область видимости сеанса jsp для того же самого.

<c:set var="name" value="value" scope="session" />

ссылка https://www.dineshonjava.com/jsp-scopes-example/

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...