MVC1与MVC2有何不同?是JSF MVC2吗?一位采访者告诉我,JSP是MVC1。这是真的吗?
答案 0 :(得分:2)
正确的字词为"Model 1 MVC pattern"和"Model 2 MVC pattern"。
在Java术语中,模型1 MVC模式在同一位置具有“视图”和“控制器”(例如,具有<jsp:useBean>
或 scriptlet 的单个JSP文件,或单个servlet用out.println()
编写HTML)。 Model 2 MVC模式在物理上分离“视图”和“控制器”。 JSP / Facelets页面是视图,servlet是控制器。这允许多个视图使用单个控制器(根据front controller pattern)。请注意,当没有模型的方法时(本质上是一个简单的Javabean类,它保存由控制器创建/操作并由视图显示的数据),那么也没有MVC模式的方法。
JSF绝对是Model 2 MVC。控制器是FacesServlet
。 JSP可以是模型1或模型2,具体取决于作为前端控制器的servlet的存在,并且JSP文件不可访问/不可用而不首先调用控制器。 Our servlets wiki page仅包含模型2示例。