У меня есть следующий сервлет действия, и мне было интересно, должен ли я создать модель с именем supervisor
и соответствующий supervisorDAO, как я это сделал для программы? ProgramDAO помещает несколько компонентов модели программ в возвращаемый массив. Для супервизоров я использую общую утилиту базы данных ввода / вывода для получения массива хэш-карт (retALM) для всех передаваемых в строке SQL. Список супервизоров используется для создания раскрывающегося списка в HTML-форме.
У меня проблема с сохранением строки sql в сервлете действий. Я не уверен, что стоит создавать модель супервизора и DAO, если у меня есть модель User и класс UserDAO. На самом деле после ввода этого поста, я считаю, что это не правильный подход. Таким образом, можно либо оставить все так, как указано ниже, либо добавить SQL-вызов supervisor
, чтобы получить список супервизоров в классе UserDAO, поскольку пользователь может быть супервизором. Я также приветствую другие критические замечания в отношении моего подхода к сервлетам действий.
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
ProgramDAO prgDAO = new ProgramDAO();
STKUser authenticatedUser = (STKUser) request.getSession().getAttribute("STKUserSession");
List programs = null;
List supervisors = null;
try {
programs = prgDAO.getProgramList(authenticatedUser);
} catch (DAOException e) {
request.setAttribute("message", e);
}
String strSQL = "SELECT DISTINCT phonebook.badge, phonebook.lname, phonebook.fname FROM phonebook
WHERE phonebook.badge IN (SELECT DISTINCT phonebook.ata_badge FROM phonebook WHERE
phonebook.dept='" + authenticatedUser.getDepartment() + "') ORDER BY lname";
supervisors = General_IO.retALM(strSQL);
request.setAttribute("supervisors", supervisors);
request.setAttribute("programs", programs);
RequestDispatcher view = request.getRequestDispatcher("views/commitment_template.jsp");
view.forward(request, response);
}