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?
Ya. Selain itu, MVC ialah corak reka bentuk untuk seni bina. Kebanyakan rangka kerja menyokong ini.
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)
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.
1. MVC kebanyakannya adalah rangka kerja, struts/spring
2. Ya
3
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