есть Сервлет такой, суть его работы : удалить, добавить, редактировать пользователей на JSP странице. Его необходимо переделать, чтобы в методах Гет и Пост был один метод,который вызывает нужный метод edit,delete и далее....как создать такой метод ? и как он должен выглядеть ? при этом методы Гет и Пост должны вызывать только этот метод.
public class UserController extends HttpServlet {
private static final long serialVersionUID = 1L;
private static String INSERT_OR_EDIT = "/user.jsp";
private static String LIST_USER = "/listUser.jsp";
private UserDao dao;
public UserController() {
super();
dao = new UserDao();
}
private void delete(HttpServletRequest request, HttpServletResponse response) {
int userId = Integer.parseInt(request.getParameter("userId"));
dao.deleteUser(userId);
request.setAttribute("users", dao.getAllUsers());
}
private void edit(HttpServletRequest request, HttpServletResponse response) {
int userId = Integer.parseInt(request.getParameter("userId"));
User user = dao.getUserById(userId);
request.setAttribute("user", user);
}
private void listUsers(HttpServletRequest request, HttpServletResponse response) {
request.setAttribute("users", dao.getAllUsers());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String forward="";
String action = request.getParameter("action");
if (action.equalsIgnoreCase("delete")){
delete(request, response);
forward = LIST_USER;
/* один метод, который различает внутри себя такой запрос и вызывает соответствующий метод common, edit..*/
} else if (action.equalsIgnoreCase("edit")){
forward = INSERT_OR_EDIT;
edit(request, response);
} else if (action.equalsIgnoreCase("listUser")){
forward = LIST_USER;
listUsers(request, response);
} else {
forward = INSERT_OR_EDIT;
}
RequestDispatcher view = request.getRequestDispatcher(forward);
view.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = new User();
user.setFirstName(request.getParameter("firstName"));
user.setLastName(request.getParameter("lastName"));
try {
Date dob = new SimpleDateFormat("MM/dd/yyyy").parse(request.getParameter("dob"));
user.setDob(dob);
} catch (ParseException e) {
e.printStackTrace();
}
user.setEmail(request.getParameter("email"));
String userid = request.getParameter("userid");
if(userid == null || userid.isEmpty())
{
dao.addUser(user);
}
else
{
user.setUserid(Integer.parseInt(userid));
dao.updateUser(user);
}
RequestDispatcher view = request.getRequestDispatcher(LIST_USER);
listUsers(request, response);
view.forward(request, response);
}
}
сделал,вот решение. буду рад если кому то поможет.
public class UserController extends HttpServlet {
private static final long serialVersionUID = 1L;
private static String INSERT_OR_EDIT = "/user.jsp";
private static String LIST_USER = "/listUser.jsp";
private UserDao dao;
public UserController() {
super();
dao = new UserDao();
}
private void delete(HttpServletRequest request, HttpServletResponse response) {
int userId = Integer.parseInt(request.getParameter("userId"));
dao.deleteUser(userId);
request.setAttribute("users", dao.getAllUsers());
}
private void edit(HttpServletRequest request, HttpServletResponse response) {
int userId = Integer.parseInt(request.getParameter("userId"));
User user = dao.getUserById(userId);
request.setAttribute("user", user);
}
private void listUsers(HttpServletRequest request, HttpServletResponse response) {
request.setAttribute("users", dao.getAllUsers());
}
private void common (HttpServletRequest request, HttpServletResponse response) {
String forward="";
String action = request.getParameter("action");
if (action.equalsIgnoreCase("delete")){
delete(request, response);
forward = LIST_USER;
} else if (action.equalsIgnoreCase("edit")){
forward = INSERT_OR_EDIT;
edit(request, response);
} else if (action.equalsIgnoreCase("listUser")){
forward = LIST_USER;
listUsers(request, response);
} else {
forward = INSERT_OR_EDIT;
}
RequestDispatcher view = request.getRequestDispatcher(forward);
try {
view.forward(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
User user = new User();
user.setFirstName(request.getParameter("firstName"));
user.setLastName(request.getParameter("lastName"));
try {
Date dob = new SimpleDateFormat("MM/dd/yyyy").parse(request.getParameter("dob"));
user.setDob(dob);
} catch (ParseException e) {
e.printStackTrace();
}
user.setEmail(request.getParameter("email"));
String userid = request.getParameter("userid");
if(userid == null || userid.isEmpty())
{
dao.addUser(user);
}
else
{
user.setUserid(Integer.parseInt(userid));
dao.updateUser(user);
}
RequestDispatcher views = request.getRequestDispatcher(LIST_USER);
listUsers(request, response);
try {
views.forward(request, response);
} catch (ServletException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
common(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
common(request, response);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть класс который подтягивает конфигурации изproperties файла в методе initPaths() отмеченным @PostConstruct
Я открыл програму "Выполнено", ввел msconfig и случайно нажал на кнопку "отключить все"Потом перезагрузил пк
Натолкнулся на проблему с добавлением текста в текстовое поле, когда я вставляю текст, его просто не видно
Есть 2 стандартные carousel от bootstrap на одной странице, нужно, чтобы на них всегда были изображения с одинаковым индексом