MVC設計の概要
処理するために、JSPやJavaBeanへのすべての統一された表示層、制御層、データ層操作の初期のJava Web開発では、我々はMODEL1を呼び出します。
- 欠点が生じます。
- JSPおよびJavaビーン、JavaコードとHTMLコードとの間の重大な結合は、また、互いに結合されています
- これは、Javaを習得するだけでなく、開発者が必要とするだけでなく、優れたフロントエンドレベル
- フロントとリアの相互依存関係は、効果的にテストするために、バックエンドは、フロントエンドの完了に依存しているフロントエンドを完了するためのバックエンドを待つ必要があります
- コードの再利用は困難です
このようにしているので上記の欠点のために、それはすぐに、次の図のように、サーブレット+ JSP + Java Beanが、初期のMVCモデル(モデル2)に置き換えられました。
まず、ユーザの要求がサーブレットに達し、その後、要求に応じて、適切なJava Beanを呼び出すと、JSPにすべて表示される結果は、完了するので、我々はMVCパターンモードと呼ばれます。
- Mモデル(モデル)を表し
、それはどのようなモデルですが?これは、データモデル、つまり、DAO、豆です - Vは、ビュー(ビュー)を表し
、それが何であるかを見ますか?これは、データモデルを表示するために使用されるページ、JSP、です - Cは、コントローラ(コントローラ)を表し
何コントローラーを?コントローラの役割は、異なるビュー(ビュー)で、このような役割は、サーブレットを果たしていることを示し、異なるデータ(モデル)にあります。
私たちの最初のSpring MVCのプログラムについて書いてみましょう:
さらに読書:Web開発モデル
Spring MVCのアーキテクチャ
永続層を解決するためには、優れたデータベースのトランザクション未処理のプログラミングでしたが、またのNoSQLの強い上昇を満たすために、Spring MVCのは、プログラムを提供します:
传统的模型层被拆分为了业务层(Service)和数据访问层(DAO,Data Access Object)。 在 Service 下可以通过 Spring 的声明式事务操作数据访问层,而在业务层上还允许我们访问 NoSQL ,这样就能够满足异军突起的 NoSQL 的使用了,它可以大大提高互联网系统的性能。
- 特点:
结构松散,几乎可以在 Spring MVC 中使用各类视图
松耦合,各个模块分离
与 Spring 无缝集成
示例:
1、在web.xml 配置一个DispatcherServlet 并且使用
初始化参数 contextConfigLocation 关联容器对应的配置文件
可以<url-pattern>
元素的值改为 / ,表示要拦截所有的请求,并交由Spring MVC的后台控制器来处理(也可以用*)
contextConfigLocation 关联容器对应的配置文件 也可以写到WebContent下面的WEB-INF下面,这个时候就不用再web.xml中配置初始化上下文配置,如果不配置,运行servers的时候,编译器会报这个异常,xml文件名字自定义可改
2、编写netmk_web.xml(也就是异常报错说缺少dispatcher-servlet.xml,名字可自定义的哈)
开启基于标注 Spring MVC
开启组件扫描 <context:component-scan base-package="" />
开启mvc的标注 <mvc:annotation-driven /> 自动配置了一个HandlerMapping
3、编写一个普通的java类使用@Controller 把java类变成控制器
控制器方法的返回值可以是String也可以是 ModelAndView
方法名任意参数任意 在控制器方法上加 @RequestMapping("/请求路径")
我这里创建了个实体类,使用了实体里面的属性
4、在WEB-INF建立一个login.jsp
重启服务器之后
测试结果如下:
控制台显示: