servlet - 在MVC模式中 Javabean只是充当值对象的角色吗
天蓬老师
天蓬老师 2017-04-18 10:25:15
0
5
551

Javaweb新手,尝试用MVC模式做一个购物网站,但是今天看一本书里面提到的业务逻辑和Servlet与JavaBean的关系让我对自己之前的做法有了疑惑。

我之前实现各个功能的流程都是这样的(以商品搜索为例):
(GoodDAO是商品相关的数据库操作接口,Good是商品的值对象)
用户从JSP页面发送请求 -> Servlet接收请求 -> Servlet调用GoodDAO中的query方法 -> 该方法返回一个ArrayList<Good>的查询结果 -> Servlet将该ArrayList交给JSP(通过session或者request之类的) -> JSP用EL读取并显示搜索结果

但是今天看到的那本书说要把业务逻辑从Servlet中拿出来,我搜索了一下发现还有一种做法是创建一种叫xxxManager的类(在这里可以叫GoodManager),由Servlet调用该类,该类再调用GoodDAO,Manager最终将数据填入Good实体中返回给Servlet。这就和我做的方法感觉有出入了……

我的Servlet部分代码如下(这个Servlet不是我举例的那个,代码少点但结构类似):

        request.setCharacterEncoding("UTF-8");
        int gid = Integer.parseInt(request.getParameter("gid"));
        Good good = null;
        GoodDAO goodDAO = DAOFactory.getGoodDAOInstance();
        HttpSession session = request.getSession(true);

        try {
            good=goodDAO.queryByID(gid);
            session.setAttribute("good", good);
            response.sendRedirect("goodupdate.jsp");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

我的网站后台结构如下图(省略了很多Servlet):

我的问题是,
我现在的做法是MVC模式吗?
JavaBean在这里仅仅指Good这一个类吗?(它的属性是私有的,提供了getter/setter,可序列化)
GoodDAO的具体实现类算不算是JavaBean?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(5)
迷茫
  1. Ya. Selain itu, MVC ialah corak reka bentuk untuk seni bina. Kebanyakan rangka kerja menyokong ini.

  2. Ya. Di samping itu, saya juga mengesyorkan anda dua artikel yang sangat baik untuk mendalami pemahaman anda tentang Bean. Kacang Jawa di Empayar Java (Bahagian 1) dan kacang Jawa di Empayar Java (Bahagian 2)

  3. Tegasnya tidak.

Lain-lain:
Saya nampak penyoal ingin mengesyorkan rangka kerja untuk bermula. Anda boleh mencuba SpringBoot, yang kecil tetapi menyeluruh dan boleh digunakan di luar kotak. Di samping itu, sudah ada buku yang sepadan di China.

Peter_Zhu

1. MVC kebanyakannya adalah rangka kerja, struts/spring
2. Ya
3

Peter_Zhu

Untuk menjawab soalan anda
1 Ya, tetapi tidak sepenuhnya.
2.Ya.
3 Menurut pepatah tradisional, tidak. Tetapi selepas kemunculan musim bunga, terutamanya untuk konsep IOC, ini adalah kacang

阿神

Bukankah nama pakej anda mozek?

左手右手慢动作

Rasanya apa yang anda baca adalah buku teks lama Pendekatan semasa, walaupun ia bukan rangka kerja, ialah servlet hanya bertanggungjawab untuk menerima nilai dan menghantar parameter Logik perniagaan tertentu buat lapisan perkhidmatan, dan lapisan dao bertanggungjawab untuk menyambung ke pangkalan data. Adalah disyorkan untuk belajar springMVC

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!