我有模型/控制器,但我如何处理视图?

时间:2011-12-18 00:30:58

标签: java model-view-controller java-ee-6

如果我使用HttpServlet作为我的控制器,并且我已经设置了模型并在特定的包中,那么视图呢?我想要的最后一件事是将所有这些HTML转储到我的控制器中。我把它放在哪里?什么文件类型?

我是Java的新手:)

更新

如果我应该使用jsp文件,我的“网页”部分中不会有jsp文件使它们公开可见吗?或者他们应该去别的地方?如何将它们包含在我的页面上并将参数传递给它们?

4 个答案:

答案 0 :(得分:2)

如果您正在使用servlet(似乎就是这种情况),您的视图应该包含JSP个文件。如果您使用JSF,则将视图放在facelets中,但由于您使用的是servlet,因此不是这样。 JSF是最新的规范,但我敢打赌,最好从JSP和servlet开始 - 也许遵循official tutorial

编辑:如何从servlet向JSP发送请求?只需从RequestDispatcher获取ServletRequest作为参数传递JSP路径:

RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");

如果调度程序与null不同,只需调用其 include() forward()方法:

dispatcher.forward(request, response);`

调度程序可以是null(例如,如果JSP不存在),因此最好验证是否返回了正确的调度程序。

答案 1 :(得分:0)

如果您要使用富Internet应用程序(RIA),请

jsps或javascript。

你很可能想要jsps。

答案 2 :(得分:0)

JSP用于视图。所以他们应该公开。除了html之外,JSP不会像在PHP中那样公开输出。除非您错误地配置了服务器,否则源不会显示。

此外,您可以通过共享对象将对象从servlet传递到jsp,因为它们位于同一个vm中。 JSP是servlet颠倒的,所以不是从java打印HTML,而是在html中嵌入Java,这样可以避免编写out.print语句....

因此servlet更适合编写动作。用于视图的JSP。

答案 3 :(得分:0)

您也可以考虑花一些时间学习JSTL。它使您的JSP清晰易读:http://docs.oracle.com/javaee/5/tutorial/doc/bnakc.html

请记住,用户将无法在JSP中看到代码,Web容器实际上编译JSP文件很像JVM(实际上以非常类似的方式)编译源代码。如果您使用的是Tomcat之类的东西,则可以在Web容器的工作目录中查看已编译的JSP。它看起来会像普通的类文件一样,里面有很多out.write。