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

java web mvc_构建Java Web应用程序时遵循MVC的三个步骤相关推荐

  1. 构建Java Web应用程序时遵循MVC的三个步骤

    步骤1 做 始终通过servlet / action bean处理URL(POST表单,单击链接等),而不是通过JSP处理 为什么 ActionBeans(无论某些框架调用那些类),而servlet很 ...

  2. 使用Java和Spring构建现代Web应用程序

    使用Spring Framework创建Java Web应用程序从未如此简单. 如果您已经熟悉Java并且几乎没有创建Web应用程序的经验,或者如果您担心所有很酷的孩子都放弃Java取而代之的是Rub ...

  3. 用gradle启动java项目_构建Java项目

    #构建Java项目# 上一节我们简要介绍了如何编写一个单机的To Do应用,接下来要打包部署成可执行的应用,我们需要编译源代码,生成的class文件需要打包到JAR文件中.JDK提供了javac 和j ...

  4. java卸载错误2503_修复控制面板卸载程序时提示错误代码2502、2503的方法

    在平常生活中大家是如何卸载软件的呢?有的用户会使用第三方工具,例如软件管家等来进行卸载,这样操作的用户占大多数,但是无法将软件卸载干净.有的用户会直接将安装目录全部删掉,这样操作的用户较少.最理想的卸 ...

  5. 使用Spring 3.1和基于Java的配置构建RESTful Web服务,第2部分

    1.概述 本文介绍了如何在Spring中设置REST –控制器和HTTP响应代码,有效负载编组配置和内容协商. 2.在Spring了解REST Spring框架支持两种创建RESTful服务的方式: ...

  6. gradle构建java实例_Gradle构建Java应用程序

    文章摘要 1.运行init,创建 2.执行创建 3.运行应用程序 一.运行init任务 要运行该init任务,请从命令提示符运行以下命令: $ gradle init --type name来自如下: ...

  7. Spring MVC之基于java config无xml配置的web应用构建

    更多spring相关博文参考: spring.hhui.top 前一篇博文讲了SpringMVC+web.xml的方式创建web应用,用过SpringBoot的童鞋都知道,早就没有xml什么事情了,其 ...

  8. axis2 json_带有Java和Axis2的JSON Web服务

    axis2 json 我最近遇到一位客户,要求我使用Java Web服务重建其旧产品. 他们希望它模块化并且易于使用. 我想到的第一件事是使用宁静的方法. 但是让我烦恼的是,Java宁静的方法是使用X ...

  9. 带有Java和Axis2的JSON Web服务

    我最近遇到一位客户,要求我使用Java Web服务重建其旧产品. 他们希望它模块化并且易于使用. 我想到的第一件事是使用宁静的方法. 但是让我烦恼的是,Java宁静的方法是使用XML !,我更喜欢一种 ...

最新文章

  1. JSP中是EL表达式与JSTL
  2. 定制Eclipse IDE之插件篇(一)
  3. python推荐入门书籍-学python入门看什么书
  4. 用加法器构造能够实现连续加法的电路
  5. AB1601LED之pwm
  6. markdown 公式_【建议收藏】数学公式如何用Markdown优雅地写出来
  7. 【JS】使用变量作为object的key-方法汇总
  8. rt5350 中断处理分析
  9. 智能客服“听不懂人话”?消费者很“闹心”
  10. 视频压缩工具linux,Ubuntu视频转换工具-mencoder命令行参数
  11. 一文了解下对小微风控策略的优雅调整
  12. mysql库表的触发器表名_MySQL 触发器,实现不同数据库,不同表名,表结构不同,数据实时同步...
  13. NYOJ100 - 1的个数
  14. 解读汽车机械工作原理GIF图 懂得三个算你牛!
  15. c# 十六进制数据转十六进制字符串
  16. 简单易懂的讲解深度学习(入门系列之八)
  17. 极其简单的笔记本安装win10 + ubuntu20.0.4双系统教程
  18. Parameter 0 of method selGoods in com.jm.provider.service.admin.GoodsServerImpl required a bean of t
  19. Jquery实现大于等于且小于等于-遁地龙卷风
  20. LeetCode 111-120题 尚未看题解

热门文章

  1. 漫画:什么是单例设计模式
  2. composer配置阿里云镜像
  3. 如何实现省市关联的下拉列表
  4. 数据库的嵌套查询和统计查询
  5. linux跑循环脚本占内存,Linux下实现脚本监测特定进程占用内存情况
  6. Java获取指定月份的最后一天
  7. php制作留言板的题_PHP实现留言板功能实例代码
  8. 索引---B+Tree
  9. jcmd_jcmd,大约JDK 11
  10. cli parser_Java命令行界面(第27部分):cli-parser