我在Java2EE Servlets和JSP中乱搞,当生成的HTML代码发送到Web浏览器时,我仍然感到困惑。我实现了 FrontController 模式,因此用户请求被 Controller servlet (FC) 拦截,它根据 request 中打包的命令找出正在请求的 jsp 页面,并使用 request.getRequestDispatcher(path).forward(request, response);
将请求和响应转发到那里然后我猜从转发方法传递的请求中检索到的带有几行动态设置数据的 jsp 页面是否生成并发送回浏览器?
我想这不是它的正确工作方式,这只是我的看法,所以有人可以纠正我可能写整个过程并解释getRequestDispatcher(path).forward(request, response);
的确切目的吗?
提前感谢!
转发包括说:我已经完成了我的工作,让生活在path
的组件完成其余的工作。
Servlet(控制器)擅长读取和验证参数,调用业务逻辑和创建Java Bean实例(模型)。他们在生成HTML代码方面很糟糕。
JSP(视图)非常适合使用存储在 Java Bean 中的数据动态生成 HTML 代码,但它们不擅长执行业务逻辑。
因此,请求首先由 servlet 处理,servlet 读取和验证参数,调用业务逻辑,获取数据并将其存储在存储为请求属性的 Java Bean 中。然后,servlet 将请求和响应转发给 JSP,JSP 生成 HTML 并将其写入响应编写器。写入响应编写器的内容将转到浏览器。