java web mvc
第1步
做
始终通过servlet / action bean处理URL(POST表单,单击链接等),而不是通过JSP处理
为什么
ActionBeans(无论某些框架调用那些类),而servlet很少是控制器 用于处理用户输入。 JSP是专用于将软件表示呈现给客户端的视图引擎。 分开的用户输入处理和HTML呈现可防止您诱惑创建巨大的,多功能的,不可测试的JSP,这些JSP混合了业务和表示逻辑,并违反了MVC模式。
第2步
做
通过转发到仅位于/ WEB-INF / {JSP文件夹}下的JSP来呈现视图
为什么
视图只能通过软件设计访问,而不能直接访问。 将JSP放置在项目的根目录中会带来与客户端不必要的访问有关的安全性问题。此外,将所有JSP隐藏在/ WEB-INF下的做法也减少了JSP处理非控制器处理URL的可能性,并帮助我们执行步骤1。
第三步
做
仅通过使用请求属性或闪存作用域将模型从控制器传递到视图
为什么
能够访问某些数据的所有其他视图方式都太有限或不安全。 直接在视图内使用请求参数可能是恶意用户传递无效数据的选项。 使用会话存储信息会导致内存消耗,并且需要一些机制来在到期后清除未使用的数据。 Cookies取决于浏览器,其大小有限并且使用起来不太友好。 另一方面,请求属性没有所有这些缺点,并提出了控制器职责(更新模型)和视图职责(读取模型)的干净分离。 当涉及无法使用请求属性的“ 发布后重定向”模式时,Flash作用域变得非常方便。
PS:所有基于行动的现代框架都在使用以下描述的步骤来实现其目标。 但是,如果您使用一些老式的代码或根本不使用任何框架,您仍然可以实现良好的整洁和易于使用的MVC。
参考:在Jk 博客博客上,我们的JCG合作伙伴 Evgeny Shepelyuk在构建Java Web应用程序时遵循MVC的三个步骤 。
翻译自: https://www.javacodegeeks.com/2012/07/three-steps-to-follow-mvc-while.html
java web mvc