правильный способ структурирования сервлетов для добавления / редактирования / списка элементов - PullRequest
0 голосов
/ 28 июня 2011

Мне нужно немного посоветовать, как структурировать классы в моем веб-приложении. У меня есть интернет-магазин, в котором можно добавлять, редактировать, перечислять и удалять элементы. Когда я пытался написать для этого сервлеты, это выглядело как

    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

1 Ответ

1 голос
/ 28 июня 2011

Есть несколько рамок для помощи с этим шаблоном.Если вы хотите использовать чистые сервлеты, проще всего будет передать сервлету параметр, указывающий операцию, которую вы пытаетесь выполнить (т.е. создать, редактировать, составить список).

Ниже приведены пара фреймворков, которые вам могут пригодиться

  • Spring
  • MVC Struts
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...