sq = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
}catch(Exception e){ e.printStackTrace();}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int action = Integer.parseInt(request.getParameter("action"));
//анализируется код операции
switch (action) {
case LOGIN_ACTION : login(request, response); break;
case UPDATE_PREPOD_ACTION : updatePrepod(request, response); break;
case DELETE_PREPOD_ACTION : deletePrepod(request, response); break;
case ADD_PREPOD_ACTION : addPrepod(request, response); break;
case SUBJECT_ACTION : subjectAction(request, response); break;
}
}
private void login(HttpServletRequest request, HttpServletResponse response) {
String user = "unauthorized";
String login = request.getParameter("login");
String password = request.getParameter("password");
try {
HttpSession session = request.getSession();
Запрашиваем из базы данных преподавателей данные о пользователе с введенными реквизитами
ResultSet rs = sq.executeQuery("SELECT name FROM prepods WHERE login='" + login + "' AND password ='" + password+"'");
Если таковые есть, запоминаем имя пользователя и устанавливаем его в качестве атрибута сессии
if (rs.next()) user = rs.getString("name");
session.setAttribute("user", user);
session.setAttribute("statement", sq);
response.sendRedirect("manager.jsp");
} catch (Exception e) { e.printStackTrace(); }
}
private void updatePrepod(HttpServletRequest request, HttpServletResponse response) {
//обновление данных о преподавателе в БД
try{
String user = request.getParameter("user");
String column = request.getParameter("column");
String value = request.getParameter("value");
HttpSession session = request.getSession();
if ((column.compareTo("") != 0)&&(value.compareTo("") != 0)&&(user.compareTo("") != 0))
{ Если поля непустые, посылаем базе запрос на обновление соответствующих полей
sq.executeUpdate("UPDATE prepods SET " + column + "='"+ value +"' WHERE name='" + user + "'");
if (column.compareTo("name") == 0) {
Если изменения коснулись имени пользователя, меняем и атрибут сессии
sq.executeUpdate("UPDATE subjects SET " + column + "='"+ value +"' WHERE name='" + user + "'");
user = value;
session.setAttribute("user", user);
}
}
Перенаправляем пользователя на main.jsp
response.sendRedirect("main.jsp");
} catch (Exception e) {e.printStackTrace();}
}
private void deletePrepod(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
String name = (String)session.getAttribute("user");
Формируем два запроса на удаление данных о пользователе, один на удаление данных из таблицы преподавателей, другой – из таблицы предметов. Критерий удаления – имя пользователя
String query = "DELETE FROM prepods WHERE name='" + name + "'";
String query2 = "DELETE FROM subjects WHERE name='" + name + "'";
try {
sq.executeUpdate(query);
sq.executeUpdate(query2);
После удаления перенаправляем пользователя на выход из системы
response.sendRedirect("logout.jsp");
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void addPrepod(HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name");
String login = request.getParameter("login");
String password = request.getParameter("password");
if ((name != null)&&(login != null)&&(password != null))
{ Проверяем корректность пришедших данных, если все ок, формируем запрос к базе на добавление
String query = "INSERT INTO prepods (name, login, password) VALUES('" + name +"', '" + login + "', '" + password +"')";
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.