Eclipseで新しい動的なWeb Projecetプロジェクトを作成します。
静的Webプロジェクトは死んで書かれているすべてのものと静的なコンテンツページを作成します。私たちのプロトタイプは次のように描くと等価である
ように、いくつかのJavaのJSPページのコードやデータバインディングとして、ダイナミックがあるかもしれない何かの動的なWeb Projecetページこれらのページの一部を実行しているWebコンテナの実行を指定する必要がありますので、
して、
定めます
コントローラ/サービス/ DAO /エンティティ/マッパ(一例)
[設定のweb.xml
一般的に、デフォルトのweb.xmlファイル<歓迎-ファイルリスト>タグ
ユーザーは、URLにプロジェクト名を入力するか、WebコンテナのURLを入力すると(例にhttp:// localhost:8080 /)ページには、ページ名(NewFile.jsp)はWebコンテナ缶のURLに直接入力する直接ジャンプします。へジャンプ
<歓迎-ファイル・リスト>
<歓迎-ファイル> NewFile.jsp </歓迎ファイル>
<歓迎-ファイル> NewFile.html </歓迎ファイル>
</歓迎ファイルリスト>
重ねる順番に従ってジャンプは複数のデフォルト設定ページに表示された場合
あなたは、サーブレットのURLパターンは/ *で設定した場合、
その後、ローカルホスト訪問:8080 /には、サーブレットに一致する
という一致歓迎-ファイルリストよりも、
URLパターンが/(これはデフォルトのサーブレットのサーブレットです)、
他のモデルが一致する一致しない場合、それは歓迎-ファイルリストと一致します。
1)プロジェクトWEB、WEBコンテナが行く起動し、その設定ファイルweb.xmlを読み込む<コンテキスト-PARAM>と<聞き手>二つのノードを読み込みます。
2)次に、のServletContext(サーブレット・コンテキストを作成するための容器)、Webプロジェクトのすべての部分がこの共有コンテキスト話す
3)コンテナの<context-PARAM>のキーと値のペアに変換され、ServletContextへ。
4)<リスナー>のインスタンスを作成するコンテナは、リスナーを作成します
web.xmlファイルに関係なく、自分のためのシーケンスをロードします。これは、リスナーの前に書き込みフィルタず、ロードされたフィルタとなります。
結論は:リスナー- >フィルタ- >サーブレット
、構成部分がある間:コンテキストPARAM、キーと値のペア、ServletContextへ即ち、アプリケーション・コンテキスト情報を提供するために使用されます。
私たちのリスナー、フィルタおよびその他の情報は、これらのコンテキストの初期化に使用される
休日がリスナーにそれを書くべきではありません前に、コンテキスト-のparam構成セクションが設定されていますか?
実際にコンテキストPARAM構成セクションは、実際のロード順に、任意の位置に書くことができます。
コンテキスト-PARAM - >リスナー - >フィルタ - >サーブレット
当該構成部分の特定のタイプのために、それらが現れる順序が関連しています。
web.xmlのはもちろんフィルタの複数の定義され、例示的なフィルタでは、
フィルタ設定部は、フィルタマッピングに関連付けられ、
フィルタ及びフィルタマッピングセクションのフィルタ名の点で同様の構成を有していることが留意されなければなりません、
********************後のfilter-mappingは、フィルタ、*******************に存在していなければならない
場合や、フィルタマッピングを解析し、それがまだ定義されていないフィルタ名に相当します。
容器は、各Webフィルタを初期化するために開始すると、フィルタはセクションが発生し初期化するために配置されている
リソースの整合フィルタマッピングのための複数の要求は、
フィルタ遮断リソースがフィルタマッピング部の順に配置されているコールのdoFilterをオンに表示され()メソッド。
サーブレットフィルタと同様に
web.xmlの装填配列は、コンテキストPARAM - >リスナー - >フィルタ - >サーブレット
呼び出し時間の同じタイプの間順次実際のプロシージャコールマッピングに対応するためです。
一般的なラベルの指示のweb.xmlファイル
<web-app>の
</表示名を実行> <表示名実行>は、Webアプリケーションの名前定義
<説明> </記述>宣言ウェブアプリケーションの説明
<コンテキストPARAM> </コンテキスト -param>コンテキストのparam 要素アプリケーションの規定の範囲内の初期化パラメータ。
<フィルター> </フィルタ>は、javax.servlet.Filterインタフェース関連付けられたクラス名を持つフィルタエレメント。
<のfilter-mapping> </フィルタ -mapping> フィルタ、フィルタマッピング要素を命名すると、1つまたは複数の関連するサーブレットやJSPページでそれを使用する必要があります。
<聞き手> </リスナー>サーブレットAPIバージョン2.3イベントリスナーのためのサポートを追加し、イベントリスナーを変更し、セッションまたはサーブレット環境を削除する、確立するときに通知されます。イベントリスナクラスそのリスナーの要素を指定します。
<サーブレット> </サーブレット>サーブレットやJSPページへの初期化パラメータやカスタムURLの開発では、まず、サーブレットやJSPページに名前を付ける必要があります。サーブレット要素は、このタスクを達成するために使用されます。
<のservlet-mapping> </サーブレット -mapping> サーバは通常、デフォルトのサーブレットのURLを提供します。http: //ホスト/ webAppPrefix /サーブレット/ ServletName。あなたは、サーブレット初期化パラメータまたは相対URLを処理する方が簡単にアクセスできるようにしかし、多くの場合、このURLを変更します。あなたは、サーブレット-mapping要素を使用して、デフォルトのURLを変更する場合。
<セッション-config>の</セッション -config> セッションが一定時間内にアクセスされない場合は、サーバーはメモリを節約するためにそれを放棄することができます。タイムアウト値は明示のHttpSessionの単一のセッションオブジェクトsetMaxInactiveIntervalメソッドを使用して設定することができる、またはセッション設定要素のデフォルトタイムアウト値を使用して製剤化することができます。
<MIMEマッピング> </ MIME -mapping> Webアプリケーションが保証を提供することで、特定のMIMEタイプへの割り当て、MIME-mapping要素を確保することを望んで、特殊なファイルを考えている場合。
<歓迎-ファイル・リスト> < /歓迎ファイルリスト> それがどのファイルを使用し、ファイル名の代わりにURL参照ディレクトリ名を受信するサーバーことを示しています。
<エラーページ> </エラー -page> 特定のHTTPステータスコードでは、表示するページを開発することができるように、返された、または例外の特定の種類がスローされます。
<タグライブラリ> </ taglibの>タグ別名ライブラリ記述子ファイル(タグLibraryu記述子ファイル)を指定します。この機能を使用するには、これらのファイルは、JSPページを使用してというよりも、編集、TLDファイルの場所を変更することができます。
<resource-env-ref>要素< /のresource-env-ref>を宣言し、管理対象オブジェクトに関連するリソース。
<のresource-ref> </リソース -ref> 工場で使用されるリソースの外部リソースを宣言します。
<セキュリティ制約> </セキュリティ -constraint> URLを保護する必要があります開発。これは、ログイン-config要素と組み合わせて使用されます
<ログイン-config>の</ログイン -config> サーバは、ユーザ認証の保護されたページにアクセスすることを試みるべき方法を指定します。これはsercurity-constraint要素と組み合わせて使用されます。
役割名サブ要素の<security-役割> </セキュリティ -role> セキュリティロールのリストを与える、これらの役割は、servlet要素のsecurity-role-ref要素に表示されます。それぞれの役割は、より簡単に高度なIDEプロセスの安全性情報を宣言することができます。
<のenv-entry> </ envを -entry> 文でのWebアプリケーション環境エントリ。
EJBのホームディレクトリのの<ejb-ref>を参照</のejb-ref>を宣言。
<ejb-local-ref> < / EJB-ローカル-refは> ローカルアプリケーションEJBのホームディレクトリを宣言します。
</ web-app>の
春の設定
1)コンテキストのparam-nameタグ内に配置されたスプリング構成application.xmlにロードするために使用される
<! -指定スプリングプロファイルの位置- >
<文脈PARAM>
の<param-name>のcontextConfigLocation </ PARAM名>
<を値-param>の
<! -複数のバネの設定ファイルを読み込む- >
/WEB-INF/applicationContext.xml、/WEB-INF/action-servlet.xml
</ PARAM値>
</コンテキスト-param>の
2)リスナースプリングタブ構成されたリスナーを追加
<! - - SPRING定義されたリスナー、ロード春>
<聞き手> <リスナークラス> org.springframework.web.context.ContextLoaderListener </リスナクラスを> </リスナー>
<聞き手> <リスナクラス> org.springframework.web.context.request.RequestContextListener </リスナクラス> </リスナー>
applicationContext.xmlをコンフィギュレーションファイル(その新しい)
春に必要なコンテキスト・パラメータのファイル
スキャンの注釈パケット、JDBCを、。。。。。等
コンフィギュレーションファイルに設定した場合は、注釈ApplicationContextのパッケージのためにスキャンされ、その後、<MVC:注釈ドリブン/>を追加する必要があります
そして、春のMVC構成プロファイルバネ-servlet.xml(彼らの新しいです)
-値が0よりも0以上である場合、アプリケーションは、サーブレットをロードし始めるとき、それは容器を示し、 負の数であるか、または指定されていない場合、サーブレットが選択されたときに容器が装填されていることを示しています。正の数の値が小さいほど、高い優先度がサーブレットを開始します。コンテナは、小さな値が最初にロードすることを確認する必要があります。値が等しい場合、コンテナは誰を選ぶ自動的にロードすることができます。- >
</サーブレット>
<-mappingサーブレット>
の<servlet-name>のSpringMVC </サーブレット名>
の<url-pattern> / </のurl-pattern>
"/"アドレスのDispatcherServletでアクセスが静的ファイル用に解析されたすべてのニーズを解析することは、解析のDispatcherServletしないように設定します
そして、春-servlet.xml設定ファイル内のMVCの適切なもの内部
也可以在这里扫描包如果在配置 spring-servlet.xml 文件配置扫描注解包的话 就不必要加<mvc:annotation-driven />
配置
ViewResolver
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".jsp" />
</bean>
如果不配置ViewResolver 那么controller无法进行页面跳转
当我们对SpringMVC控制的资源发起请求时,
这些请求都会被SpringMVC的DispatcherServlet处理,
接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中存在对该请求的最合理的映射。
然后通过该HandlerMapping取得其对应的Handler,
接着再通过相应的HandlerAdapter处理该Handler。
HandlerAdapter在对Handler进行处理之后会返回一个ModelAndView对象。
在获得了ModelAndView对象之后,Spring就需要把该View渲染给用户,
即返回给浏览器。在这个渲染的过程中,发挥作用的就是ViewResolver和View。
UrlBasedViewResolver:它是对ViewResolver的一种简单实现,
而且继承了AbstractCachingViewResolver,主要就是提供的一种拼接URL的方式来解析视图,
它可以让我们通过prefix属性指定一个指定的前缀,
通过suffix属性指定一个指定的后缀,然后把返回的逻辑视图名称加上指定的前缀和后缀就是指定的视图URL了。
如prefix=/WEB-INF/jsps/,suffix=.jsp,返回的视图名称viewName=test/indx,
则UrlBasedViewResolver解析出来的视图URL就是/WEB-INF/jsps/test/index.jsp。
默认的prefix和suffix都是空串。URLBasedViewResolver支持返回的视图名称中包含redirect:前缀,
这样就可以支持URL在客户端的跳转,如当返回的视图名称是”redirect:test.do”的时候,
URLBasedViewResolver发现返回的视图名称包含”redirect:”前缀,
于是把返回的视图名称前缀”redirect:”去掉,取后面的test.do组成一个RedirectView,
RedirectView中将把请求返回的模型属性组合成查询参数的形式组合到redirect的URL后面,
然后调用HttpServletResponse对象的sendRedirect方法进行重定向。
同样URLBasedViewResolver还支持forword:前缀,对于视图名称中包含forword:前缀的视图名称将会被封装成一个InternalResourceView对象,
然后在服务器端利用RequestDispatcher的forword方式跳转到指定的地址。
使用UrlBasedViewResolver的时候必须指定属性viewClass,表示解析成哪种视图,
一般使用较多的就是InternalResourceView,利用它来展现jsp,
但是当我们使用JSTL的时候我们必须使用JstlView。