1.春のMVCとは何ですか?
Spring MVCのビュー、コントローラの分離、いくつかのロジック明確に分け、複雑なWebアプリケーション、モデルを切り離すために、ウェブ層の機能をMVCデザインパターンタイプの軽量Webフレームワークを駆動するための要求のJavaベースの実装です一部、開発を簡素化するために、開発が容易なグループとの間の適合を誤差を低減。2、SpringMVCプロセス?
(1)ユーザーは、フロントエンドコントローラのDispatcherServletに要求を送信する要求を受信した後、(2)のDispatcherServlet、ハンドルを取得する呼処理HandlerMappingマッパー要求;
(3)プロセッサは、リクエストURLに応じて特定のマッピング処理生成処理を認めますブロッカ・オブジェクト及びプロセッサ(それが生成される場合)をまとめのDispatcherServletに戻し;
(4)のDispatcherServlet HandlerAdapterプロセッサアダプタを呼び出す;
(5)(また、バックエンドと呼ばれるハンドラ)HandlerAdapter特定の呼処理プロセッサを介して適合;
(6)完全なハンドラのModelAndViewを返し行う。
ハンドラHandlerAdapterは、実行結果をのDispatcherServletをのModelAndViewに戻されている(7)
のDispatcherServletのModelAndViewにパーサを通過ViewResolverビューを解析し(8)、
(9)詳細ビュー後戻り分析ViewResolver;
(10 )のDispatcherServletの図は、(モデルデータが満たされたビュー来る)ビューをレンダリングする
のDispatcherServletユーザに応答して(11)。
3、Springmvcの利点:
(1)様々なビュー技術だけでなく、JSPをサポートすることができる;(2)Springフレームワーク(例えばIoCコンテナ、AOP、等)と統合;
(3)クリアロール割当:フロントエンドコントローラ(のDispatcherServlet)を、要求にマッピングプロセッサ(handlerMapping)、アダプタプロセッサ(HandlerAdapter)、ビューリゾルバ(ViewResolver)。
(4)要求されたリソースのマッピングポリシーのさまざまなサポートしています。
4、春のMVCの主要コンポーネント?
フロントコントローラ(プログラマを必要としない)のDispatcherServlet(1)作用:要求を受信し、応答結果を、のDispatcherServletとトランスポンダの等価物は、他の構成要素との間の結合を減少させます。
(2)HandlerMappingマッパープロセッサ(プログラマを必要としない)
効果:要求のURLハンドラ見つけるために
(3)プロセッサアダプタHandlerAdapterの
注:ハンドラの作成に書き込むために必要なルールとHandlerAdapterの合わせに、アダプタHandlerAdapterように、あなたはハンドラを実行する権利を行くことができる前に。
(4)ハンドラプロセッサ(プログラマが必要)
(5)ViewResolverビューリゾルバ(プログラマを必要としない)
アクション:ビューを解析し、論理名の表示が実際のビュー(ビュー)に解決
ビュービュー(6。) (JSP開発するプログラマを必要とする)
図はインターフェースであり、その実装クラスのサポート異なるビュータイプ(JSP、FreeMarkerの、PDF等)
5、違いspringMVCとStruts2のは何?
(1)springmvc即ち入口はフロントコントローラサーブレット(DispatchServlet)であり、フィルタ入口が多すぎる(気Struts2のStrutsPrepareAndExecuteFilterを)。
(2)springmvc方法は(URLに対応する方法)の開発に基づいて、リクエストパラメータは、メソッドのパラメータに渡された、または単一の実施例、実施例(推奨シングルトン)として設計することができる、Struts2のクラスベースの開発であり、パラメータはクラスを通過さプロパティは、より多くのケースになるように設計することができます。
(3)OGNLアクセスデータを介してデータ値スタックメモリ要求および応答を使用してストラットパーサは、データパッケージのModelAndViewオブジェクトにパラメータSpringMVC REQUEST要求コンテンツ分析、およびパラメータ設定方法、およびビューであり、最終的にモデルデータはrequesのドメインによってページのModelAndViewに転送されます。JSPはパーサーJSTLのデフォルトを表示します。
6、リダイレクトと転送を設定する方法SpringMVC?
(1)フォワード:「フォワード:」前回値プラスに戻り、このような「フォワード:としてuser.do?name=method4」(2)リダイレクション:前の値に戻すにはプラス「リダイレクト」、例えば"のように
リダイレクト:HTTP:/ /www.baidu.com "
7、SpringMvcはAJAXとは、お互いを呼び出しますか?
フレームによってジャクソンは直接JSON Jsの識別可能なオブジェクトへのJavaオブジェクトの内側に置くことができます。次のように具体的な手順は、(1)を添加したJackson.jar
(2)コンフィギュレーションファイルにJSONマッピングを配置
直接等オブジェクト、リストを返すことができる(3)のAjax受信方法が、フロント@ResponseBodyアノテーションを追加します。
8、どのようにGET、中国の文字化けPOSTリクエストの問題を解決するためには、それに対処する方法ですか?
(1)歪POSTリクエストの問題を解決する:web.xmlのCharacterEncodingFilterフィルタを構成配置UTF-8。
<フィルター>
<フィルタ名> CharacterEncodingFilter </フィルタ名>
<フィルタクラス> org.springframework.web.filter.CharacterEncodingFilter </フィルタリングクラス>
の<init-param>要素
の<param-name>のエンコーディング</ param-名前>
の<param-value>は、UTF-8 </ PARAM値>
</ initの-param>の
</フィルタ>
<のfilter-mapping>
<フィルタ名> CharacterEncodingFilter </フィルタ名>
の<url-pattern> / * </のurl-pattern>
</のfilter-mapping>
(2)要求中国の歪みパラメータは、2つのソリューションがあります:
①Tomcatのプロファイル一貫したコーディングを変更追加し、エンジニアリングをコーディングすることは、次のとおりです。
「UTF-8」<ConnectorURIEncoding =のConnectionTimeout =「20000」ポート=「8080」=プロトコル」 HTTP / 1.1 "にredirectPort =" 8443 "/>
パラメータを再エンコードの②別の方法:
文字列= userNameの新しい新しいString(request.getParamter(" userNameに")GetBytesメソッド(" ISO8859-1 ")、" UTF-8。 「)
ISO8859-1は、Tomcatのデフォルトのエンコーディング、コンテンツはTomcatのUTF-8符号化によって符号化される必要があります。
9、Spring MVCの例外処理?
:あなたは、Springフレームワークによって処理された例外Springフレームワークを投げることができ、我々は唯一の簡単な例外ハンドラを設定する必要があり、ティムは、例外ハンドラでページを表示することができます。10、SpringMvcコントローラはシングルトンではない、そうであれば、問題が何であるか、どのように解決するには?
:そうはい、シングルトン、マルチスレッドアクセスにスレッド安全性の問題を持って、同期を使用していない、ソリューションのパフォーマンスに影響しますが、内部のフィールドコントローラで書かれていません。11、SpringMVCは、一般的に、注釈何を使用しましたか?
コメントの要求を処理するためのURLマッピングを、クラスやメソッドのために使用することができる:@RequestMapping。経路アドレスの親としてクラスに基づいている任意の方法によって要求に応答して、クラスの。@RequestBody:注釈データはJSON Javaオブジェクトに変換されます実装httpリクエストのJSONを受けました。
@ResponseBody:ノートconreoller方法を達成するため、顧客のオブジェクトにJSONレスポンスにオブジェクトを返します。
12、コントローラSpingMvcはコメントする他の選択肢はありません、それと一般的にノート?
A:一般的に使用さ@Conntroller注釈プレゼンテーション層は、他のコメントに置き換えることができないことを示します。13は、インターセプト要求ならば、私が設定する方法、提出方法を傍受を取得したいと思いますか?
:あなたは@RequestMappingにRequestMethod.GET =メソッドの内部メモを追加することができます。14、その方法はどのように要求、またはセッションを取得しますか?
:パラメータ法におけるステートメントの直接の要求は、SpringMvcは自動的にリクエストオブジェクトに渡されました。15、あなたはそれを傍受するための方法で渡されたパラメータを取得したい場合は、フロントデスクから、どのように取得するには?
:Directは、その内部パラメータで、このパラメータを宣言しますが、名前とパラメータは同じ上を通過しなければなりません。16、フロントデスクが渡されたパラメータの数が存在する場合、これらは、オブジェクトのパラメータであり、その後、どのようにすぐにこのオブジェクトを取得するには?
:DirectはSpringMvcプロパティが自動的に内部このオブジェクトに割り当てる、方法でこのオブジェクトを宣言する。
17、関数の戻り値はSpringMvcで何ですか?
A:戻り値は、多くの種類、そこに文字列、のModelAndViewを持つことができます。ModelAndViewビュークラスとデータが一緒にマージされますが、一般的に文字列が優れています。18、フロントデスクからオブジェクトが戻ってデータを渡すために何SpringMvc?
:ModelMapオブジェクトによって、オブジェクトは、オブジェクトが内部、あなたはEL式によって得ることができ、フロントデスクに添加するputメソッドを呼び出すことができます。19、どのようにそこに内部のセッションModelMapにデータを置きますか?
A:あなたは、文字列が含まれている@SessionAttributesアノテーションを追加することができます上記のクラスでのセッションキーの内側に配置されます。20、インターセプタ内部SpringMvcは書く方法です。
書き込み用の2つの方法があり、一つはHandlerInterceptorインタフェースアダプタクラスが実現される処理ロジック間のインタフェース方法、続いて別の継承達成することである。次いで、インターセプター缶SpringMvcプロファイル内に配置されました:<! -設定SpringMvcインターセプタ- >
:<MVCインターセプタ>
<! -傍受されているすべての要求に、デフォルトで、その上にブロッカーBeanを構成- >
<豆上記ID = "myInterceptor"クラス= " com.zwp.action.MyHandlerInterceptor "> </豆>
< -要求の一部についてのみインターセプト- >!
<MVC:インターセプター>
<MVC:マッピング・パス=" / modelMap.do "/>
<beanクラス=" COM .zwp.action.MyHandlerInterceptorAdapter「/>
</ MVC:インターセプタ>
</ MVC:インターセプタ>
21は、原則ノート:
Notesは、基本的に継承された特別なインタフェースの注釈で、特定の実装クラスは、Java実行時の動的プロキシクラスによって生成されます。我々は反射によりノートを取得する場合、返品には、Java実行時の動的プロキシオブジェクトを生成しました。この方法は、プロキシオブジェクトを通じて呼び出すカスタムアノテーションは、それが最終的に呼び出しますAnnotationInvocationHandlerのinvokeメソッドを。このメソッドは、このmemberValues地図からインデックス値に対応します。ソースmemberValues Javaの定数プールです。