Мне нужно немного посоветовать, как структурировать классы в моем веб-приложении. У меня есть интернет-магазин, в котором можно добавлять, редактировать, перечислять и удалять элементы. Когда я пытался написать для этого сервлеты, это выглядело как
ItemAddServlet ,ItemEditServlet,ItemsListServlet,ItemDeleteServlet,
ManufacturerAddServlet,ManufacturerEditServlet,ManufacturerListServlet
ItemAddServlet равен
public class ItemAddServlet extends HttpServlet {
private ItemDaoFactory bfactory = ItemDaoFactory.getInstance();
private ItemDaoImpl itemdaoimpl = (ItemDaoImpl) bfactory.getDao();
private ManufacturerDaoFactory mfactory = ManufacturerDaoFactory.getInstance();
private ManufacturerDaoImpl mandaoimpl = (ManufacturerDaoImpl) mfactory.getDao();
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
List<Manufacturer> manufacturers = mandaoimpl.findAllManufacturers();
request.setAttribute("manufacturers",manufacturers);
RequestDispatcher dispatcher = request.getRequestDispatcher("itemaddedit.jsp");
dispatcher.forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
String name = request.getParameter("name");
String price = request.getParameter("price");
String manId = request.getParameter("manufacturer");
Manufacturer manufacturer = mandaoimpl.findManufacturerById(Long.parseLong(manufacturerId));
Item item = new Item();
item.setName(name);
item.setPrice(Float.parseFloat(price));
item.setManufacturer(manufacturer);
itemdaoimpl.saveOrUpdateItem(item);
response.sendRedirect("listitems");
}
}
Другие сервлеты аналогичны, с изменениями в соответствии с используемой логикой.
Я сопоставил шаблоны URL с сервлетами, как показано ниже
...
<servlet-mapping>
<servlet-name>itemaddservlet</servlet-name>
<url-pattern>/createitem</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>itemeditservlet</servlet-name>
<url-pattern>/edititem</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>itemlistservlet</servlet-name>
<url-pattern>/listitems</url-pattern>
</servlet-mapping>
...
Я знаю, что здесь слишком много сервлетов ... Это не похоже на хороший дизайн ... Могу ли я выполнять функции добавления / редактирования / списка / удаления, используя только один сервлет?уменьшит мои сервлеты до
ItemServlet,ManufacturerServlet
Это правильный способ сделать это? Как бы я отобразил шаблоны URL в этом случае?/createitem /edititem /listitems
все будет сопоставлено с ItemServlet?
Буду признателен, если кто-нибудь укажет более эффективные способы структурирования кода ..
спасибо
mark