我是Java Web Development的新手,我脑子里有很多困惑。我试图用Java开发一个小项目,但我不知道如何连接MVC模式的组件。
我有一个与数据库通信的DAO,能够很好地进行正常的CRUD操作。 DAO使用包Model,它反映了我在DB中的表。另一方面,我有我的JSP页面,在WEB-INF文件夹中。
我读了这个关于servlets https://stackoverflow.com/tags/servlets/info的信息标签,但它对我不起作用。如下所述: How to develop JSP/Servlets Web App using MVC pattern?
MVC模式由
组成所以模型工作,视图工作,控制器应该做什么?实际上我得到了这个错误:
HTTP状态404 - /crm/hello.jsp类型。 状态报告消息。 /crm/hello.jsp描述。 请求的资源不可用。
但WEB-INF中的资源存在,文件hello.jsp就在那里。这里是代码片段:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Preprocess request: we actually don't need to do any business stuff, so just display JSP.
request.getRequestDispatcher("hello.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Postprocess request: gather and validate submitted data and display result in same JSP.
request.getRequestDispatcher("hello.jsp").forward(request, response);
}
}
我使用@WebServlet表示法,应该替换web.xml,对吧?我也已经阅读了答案:Design Patterns web based applications并在那里解释:
基于请求(动作)的MVC:这是最简单的实现。该 (业务)模型直接与HttpServletRequest和 HttpServletResponse对象。你必须收集,转换和验证 请求参数(大多数)自己。可以表示视图 通过简单的vanilla HTML / CSS / JS,它不会保持状态 要求。这就是Spring MVC,Struts和Stripes等 的工作原理。
我必须将每个url映射到JSP页面和带有Request / Response的Servlet内部或那里应该是一个处理所有请求/响应的Servlet? 我应该在哪里追踪会话? 我应该在哪里设置cookie? 我应该在哪里开展业务流程?例如,将数据从Web表单插入数据库,或将数据显示到JSP页面?
我试图连接点,但有人失踪了。问题是模型和视图应该如何与控制器对话?你能提供一些例子吗?