概要は、
以前にMVCパターンと春のMVCの予備的な理解を記録し、そして今、作成Spring MVCのを設定し、インタフェースプログラムを書くためにプロジェクトを記録します。
プロジェクトの作成
、オープンのIntelliJ IDEAを、をクリックして「ファイル- >新規作成>プロジェクト...」クリック、左が開いたページで「Mavenを」を選択し、「原型から作成」を選択し、「Mavenの-原型-Webアプリケーション」を選択「次へ」::「次へ」をクリックし、グループIDが完了情報を記入し、「次へ」をクリックし、ローカルにインストール良いですMavenのディレクトリを設定します。プロジェクトの格納ディレクトリを設定し、「完了」をクリックしてください:Mavenは、後で対応する依存性をダウンロードする必要があります次のように瞬間は、作成され、ディレクトリ構造は次のとおりです:この時点では、ディレクトリ構造が不足している、「ファイル- >プロジェクト構造...」、左が「ソース」をクリックし、「モジュール」を選択しをクリックして、改善する必要がある「メイン」ディレクトリを選択します右クリックメニューの「新規フォルダ...」、「Javaの」フォルダと呼ばれる新しいものに:「Javaの」フォルダを選択し、トップ「ソース」ボタンをクリックして、あなたは「Javaの」フォルダの色を見て、持っていることができます:それは、「ソースフォルダ」フォルダとしてマークされている「メイン」ディレクトリ、右クリックメニューの「新規フォルダ...」、「リソース」フォルダと呼ばれる新しいいずれかを選択します。選択し、「resour CES「フォルダには、一番上にクリックし、」リソースのリソース「フォルダロゴの変更、およびとしてマークされている」「ボタンを、あなたが見ることができる」リソースフォルダ「フォルダ:
「SRC」ディレクトリ、右クリックメニュー「新規フォルダ...」、「テスト」フォルダと呼ばれる新しいものを選択し、「テスト」ディレクトリを選択し、右クリックメニュー「新規フォルダ...」、新しい名前を「Javaの」フォルダの:の「Java」フォルダを選択し、トップの「テスト」ボタンをクリックして、あなたは「Javaの」フォルダの色を見ることができる、と「テスト用のソースフォルダ」フォルダとしてマークされています。その後、選択し、パッケージを作成します:javaディレクトリ、右の「新規作成>パッケージ」には、「OK」をクリックし、「com.snow.dcl.controller」パッケージ名を入力してこれまでのプロジェクトのディレクトリ構造を設定を完了すること。Tomcatの設定 Tomcatの設定は、以前に記録されて、レコードを複製していない(以前に接続:ここhttps://www.cnblogs.com/Dcl-Snow/p/10548725.html)。Spring MVCの依存の追加依存して次の<依存性>タグを追加し、オープンPOMファイルを:
1 <dependency> 2 <groupId>org.springframework</groupId> 3 <artifactId>spring-webmvc</artifactId> 4 <version>4.3.10.RELEASE</version> 5 </dependency> 6 <dependency> 7 <groupId>javax.servlet</groupId> 8 <artifactId>javax.servlet-api</artifactId> 9 <version>4.0.1</version> 10 </dependency>
コンフィギュレーション・コントローラの一例に基づい
のDispatcherServlet配置フロントコントローラ
のDispatcherServletコア機能は、配信要求である、要求がorg.springframework.webを実装する必要があり、以前に開発されたリリーススプリング2.5ハンドルでは、ハンドルと呼ばれる、Javaクラスの対応するプロセスに分配されます。 servlet.mvc.Controllerインターフェイス、コントローラインタフェースは、のModelAndViewのhandleRequest(HttpServletRequestのリクエスト、HttpServletResponseの応答実装しなければならない法、コントローラインタフェースの実装クラスは、要求を処理した後、のHttpServletRequest HttpServletResponseのオブジェクトパラメータ及びこの方法により、対応するアクセス要求を転送することができ、戻りModelAndViewオブジェクトとビュー経路を含むモデルオブジェクト、春に2.5注釈は、すなわち、コントローラの新しいバージョンで注釈型によって記述された機能を完了するために、コントローラインタフェースを実装する必要が基づいてなくてもよいです。
決して** **注釈レコードとまず、プロジェクトのディレクトリ構造を展開し、web.xmlファイルを開くにはダブルクリックして、コンテンツが次のように置き換えられます。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 5 version="3.1"> 6 7 <display-name>Archetype Created Web Application</display-name> 8 9 <!--welcome pages--> 10 <welcome-file-list> 11 <welcome-file>index.jsp</welcome-file> 12 </welcome-file-list> 13 14 <!--配置Spring MVC DispatcherServlet--> 15 <servlet> 16 <servlet-name>springMVC</servlet-name> 17 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 18 <init-param> 19 <!--配置/WEB-INF目录下的springmvc-servlet.xml作为mvc的配置文件--> 20 <param-name>contextConfigLocation</param-name> 21 <param-value>/WEB-INF/springmvc-servlet.xml</param-value> 22 </init-param> 23 <load-on-startup>1</load-on-startup> 24 <async-supported>true</async-supported> 25 </servlet> 26 <!--配置Spring MVC DispatcherServlet拦截所有请求--> 27 <servlet-mapping> 28 <servlet-name>springMVC</servlet-name> 29 <url-pattern>/</url-pattern> 30 </servlet-mapping> 31 </web-app> 32
然后配置springmvc-servlet.xml,在WEB-INF目录下右键“New->File”创建springmvc-servlet.xml,双击打开该文件,填写以下内容:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 7 <!--配置Handle,映射"/hello"请求--> 8 <bean name="/hello" class="com.snow.dcl.controller.HelloController"/> 9 <!--将bean的name作为url进行查找--> 10 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 11 <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 12 <!--视图解析器--> 13 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> 14 15 </beans> 16
配置文件内容含义:
1.首先声明了HelloController业务控制器类,并将其映射到/hello请求。
2.配置了处理映射器BeanNameUrlHandlerMapping,以Bean的名称作为url进行查找。
3.配置了处理器适配器SimpleControllerHandlerAdapter,对HelloController类的handleRequest方法进行调用。
4.配置视图解析器InternalResourceViewResolver解析视图,将view呈现给用户。
注意:Spring 4.0版本之后,处理映射器、处理器适配器、视图解析器不需要进行配置,Spring会提供默认配置进行使用,此处进行配置是为了理解原理。
在“com.snow.dcl.controller”包下右键“New->Java Class”,创建一个名为“HelloController”的类,编写如下代码:
1 public class HelloController implements Controller { 2 3 @Override 4 public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { 5 ModelAndView modelAndView = new ModelAndView(); 6 modelAndView.addObject("message", "Hello!"); 7 modelAndView.setViewName("/WEB-INF/content/welcome.jsp"); 8 return modelAndView; 9 } 10 11 } 12
HelloController是实现了Controller接口的控制器,处理请求动作;handleRequest是必须实现的方法,该方法的参数对应请求的HttpServletRequest和HttpServletResponse,必须返回一个包含视图名或视图名和模型的ModelAndView对象,此处返回的模型中包含message字符串对象,返回的视图路径/WEB-INF/content/welcome.jsp,即请求被转发到welcome.jsp。
选中WEB-INF目录,右键“New->Directory”,命名为“content”,然后同样方式在该目录中创建welcome.jsp,文件中编写如下代码:
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> 5 <title>welcome</title> 6 </head> 7 <body> 8 ${requestScope.message} 9 </body> 10 </html>
ブラウザに表示されるメッセージの値を取得するJSP EL式$ {requestScope.message} HelloControllerのModelAndViewオブジェクトは、本明細書で使用されます。
テストは
、起動が完了した後、TomcatServerを起動し、ブラウザを開いて、:(入力 HTTP:// localhostを:8080 /こんにちは )、成功した訪問。
アノテーションベースのコントローラインスタンス
スプリング2.5バージョンの後、すなわち、コントローラインタフェースを実装する必要、機能は、注釈によって実現することができない、アノテーションベースのコントローラを追加します。
変更HelloControllerクラス
以下のようにオープンHelloControllerクラスファイルのコードが変更されます。
1 @Controller 2 public class HelloController { 3 4 @RequestMapping(value = "/hello") 5 public ModelAndView hello() { 6 ModelAndView modelAndView = new ModelAndView(); 7 modelAndView.addObject("message", "Hello!"); 8 modelAndView.setViewName("/WEB-INF/content/welcome.jsp"); 9 return modelAndView; 10 } 11 12 } 13
HelloController是一个基于注解的控制器,使用@Controller注解标示,@RequestMapping注解用来映射一个请求和请求的方法,value = "/hello"表示请求由hello方法进行处理,方法返回一个包含视图名或视图名和模型的ModelAndView对象。
修改Spring MVC的配置文件
打开springmvc-servlet.xml,内容修改如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 6 7 <!--spring可以自动扫描base-package设置的包或子包下的java类,如果扫描到有spring相关注解的类,则注册为spring的bean--> 8 <context:component-scan base-package="com.snow.dcl.controller"/> 9 <!--配置annotation类型的映射处理器--> 10 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> 11 <!--配置annotation类型的处理器适配器--> 12 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> 13 <!--视图解析器--> 14 <bean class= " org.springframework.web.servlet.view.InternalResourceViewResolver " /> 15 16 </豆> 17
スプリング走査機構を構成RequestMappingHandlerAdapter方法を完了するために、マッピングを探します@RequestMapping注釈要求に係るパケット制御装置が自動的にマッピングプロセッサ、com.snow.dcl.controller @Controller注釈クラスをスキャンするように構成RequestMappingHandlerMapping処理で使用されます呼び出しは、ユーザに提示InternalResourceViewResolver分析ビューを設定します。
注意:春4.0のリリース、処理マッパーの後、プロセッサアダプタは原理を理解するために設定するには、ここで、簡単な方法で構成されます。
テストは
TomcatServerを開始し、起動が完了した後、ブラウザを開いて入力してください:(HTTP:// localhostを:8080 /こんにちは)、成功した訪問。