There are several forms on the page, depending on the completed page, the specific page should be used as an answer. How to process these several forms?
mypage.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <style type="text/css"> .Show{ border: 2px solid black; font-size: 35px; color: blue; background-color: yellow; width: auto; height: 80px; padding: 15px; } body{ background-color: lightblue; } button{ height: auto; } input{ width: 220px; height: 30px; } div{ width: 250px; } </style> </head> <body> <form action="MyServlet" method="POST"> <div class="Show"> <label for="day">Введите день недели</label> <input type="text" id = "day" name="day"/> <label for="room">Введите аудиторию</label> <input type="text" id = "room" name="room"/> <input type="submit" value="Отправить"/> <input type="reset" name="Очистка формы"> </div> </form> <form action="MyServlet" method="POST"> <div class="Show"> Преподаватели не ведут занятия</br> <label for="day2">Введите день недели</label> <input type="text" id = "day2" name="day2"/> <input type="submit" value="Отправить"/> <input type="reset" name="Очистка формы"> </div> </form> <form action="MyServlet2" method="POST"> <div class="Show"> Дни недели</br> <label for="countLesson">Введите количество занятий</label> <input type="text" id = "countLesson" name="countLesson"/> <input type="submit" value="Отправить"/> <input type="reset" name="Очистка формы"> </div> </form> <form action="MyServlet" method="POST"> <div class="Show"> Дни недели</br> <label for="countRoom">Введите количество аудиторий</label> <input type="text" id = "countRoom" name="countRoom"/> <input type="submit" value="Отправить"/> <input type="reset" name="Очистка формы"> </div> </form> <form action="MyServlet" method="POST"> <div class="Show"> Перенос занятий</br> <label for="firstDay">Перенести с</label> <input type="text" id = "firstDay" name="firstDay"/> <label for="secondDay">на</label> <input type="text" id = "secondDay" name="secondDay"/> <input type="submit" value="Отправить"/> <input type="reset" name="Очистка формы"> </div> </form> Processing class: MySerlet.java:
@WebServlet("/") public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getRequestDispatcher("mypage.jsp").forward(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String day = req.getParameter("day"); String room = req.getParameter("room"); AbstractList<com.art.servlet.ResultSet> result1s = new ArrayList<com.art.servlet.ResultSet>(); if(day!=null && room!=null) { try { getInstanceDatabase(); } catch (ClassNotFoundException e) { e.printStackTrace(); } ResultSet resultSet = GetInformationDatabase("SELECT shedule.fio, shedule.name, shedule.day, lessons.room FROM lb7.lessons INNER JOIN lb7.shedule ON lessons.day = shedule.day WHERE ( room = '" + Integer.parseInt(room) + "' and lessons.day = '" + day + "') "); resp.setContentType("text/html;charset=UTF-8"); resp.getWriter().println("<!DOCTYPE HTML>"); try { if(!resultSet.next()) { resp.getWriter().println("<html><body><p> По вашему запросу ничего не найдено!</p></body></html>"); } else { while (resultSet.next()) { com.art.servlet.ResultSet result = new com.art.servlet.ResultSet(); result.setFio(resultSet.getString("fio")); result.setName(resultSet.getString("name")); result.setRoom(resultSet.getString("room")); result.setDay(resultSet.getString("day")); result1s.add(result); } req.setAttribute("list", result1s); req.setAttribute("day",day); req.setAttribute("room",room); req.getRequestDispatcher("Result1.jsp").forward(req, resp); } } catch (SQLException e) { e.printStackTrace(); } } String day2 = req.getParameter("day2"); System.out.println(day2); if(day2 != null) { try { getInstanceDatabase(); } catch (ClassNotFoundException e) { e.printStackTrace(); } ResultSet resultSet = GetInformationDatabase("SELECT DISTINCT fio FROM lb7.shedule where day != '"+ day2 +"'"); resp.setContentType("text/html;charset=UTF-8"); resp.getWriter().println("<!DOCTYPE HTML>"); try { if(!resultSet.next()) { resp.getWriter().println("<html><body><p> По вашему запросу ничего не найдено!</p></body></html>"); } else { while (resultSet.next()) { com.art.servlet.ResultSet result = new com.art.servlet.ResultSet(); result.setFio(resultSet.getString("fio")); result1s.add(result); } System.out.println(result1s.size()); req.getRequestDispatcher("Result2.jsp").forward(req, resp); req.setAttribute("list2", result1s); req.setAttribute("day2", day2); } } catch (SQLException e) { e.printStackTrace(); } } } } I tried to create a class 2 MyServlet2 similar MyServlet rained errors
<input type="hidden" name="form" value="form1"/>with differentvaluefor different forms in each form. And on it to determine which form was sent. You can makesubmitwith differentvalue:<input type="submit" name="form" value="form1">Отправить</input>. And also on the server for this value to recognize which form was sent. - Sergeyif ("form1".equals(req.getParameter("form"))) { ... } else if ("form2".equals(req.getParameter("form"))) { ... } ...- Sergey