ブログは、デモの形でインターセプターの使用を伝えています
プロジェクト構造は図に示されています。
必要な瓶:springmvc構成に必要な瓶とJSTLに必要な瓶が必要です
SpringMVCパッケージの関数の説明:
aopalliance.jar:このパッケージは、ファセットのインターフェイスを含むAOP Alliance APIパッケージです。通常、ダイナミックウィービング機能を備えたスプリングなどの他のフレームワークは、この瓶に依存しています
Spring-Core.jar:このJARファイルには、Spring Frameworkの基本的なコアツールクラスが含まれています。 Springの他のすべてのコンポーネントは、このパッケージのクラスを使用する必要があります。これは、他のコンポーネントの基本的なコアです。もちろん、これらのツールクラスを独自のアプリケーションシステムで使用することもできます。
外部依存関係コモンズロギング、(log4j)。
Spring-Beans.jar:このJARファイルは、すべてのアプリケーションで使用されます。構成ファイルへのアクセス、豆の作成と管理、制御の反転の実行が含まれます /
依存関係注射(IOC/DI)操作はすべてに関連するクラスです。アプリケーションに基本的なIOC/DIサポートのみが必要な場合は、Spring-Core.jarとSpring-Beans.jarファイルを紹介します。
Spring-aop.jar:このJARファイルには、アプリケーションでSpringのAOP機能を使用する場合に必要なクラスおよびソースレベルのメタデータサポートが含まれています。宣言的トランザクション管理など、AOPに基づいたSpring機能を使用し、アプリケーションにこのJARパッケージを含めます。
外部依存関係スプリングコア(スプリングビーンズ、AOPアライアンス、CGLIB、コモンズ属性)。
Spring-Context.jar:このJARファイルは、Spring Coreに多くの拡張機能を提供します。 Spring ApplicationContext機能を使用するために必要なすべてのクラスは、JDNIを見つけることができます
すべての必要なクラス、計装コンポーネント、および検証検証に関連するクラス。
外部依存関係スプリングビーンズ(スプリングAOP)。
Spring-Context-Support: MVCに使用されるSpring-Context拡張サポート
Spring-Web.jar :このJARファイルには、Webアプリケーション開発中にSpring Frameworkで使用するために必要なコアクラスが含まれています。これには、Webアプリケーションコンテキスト機能、ストラット、JSF統合クラス、ファイルアップロード、フィルタークラス、多数のツール補助クラスのクラスを自動的にロードするクラスが含まれます。
外部依存関係スプリングコンテキスト、サーブレットAPI、(JSP API、JSTL、Commons Fileupload、COS)。
Spring-Webmvc.jar:このJARファイルには、Spring MVCフレームワークに関連するすべてのクラスが含まれています。サーブレット、Web MVCフレームワーク、コントローラー、およびフレームワークのサポートビューが含まれます。もちろん、アプリケーションがスタンドアロンMVCフレームワークを使用している場合、このJARファイルにクラスは必要ありません。
外部依存関係Spring-Web(Spring-Support、Tiles、Itext、POI)。
spring-aspects.jar: aspectjのサポートを提供して、eclipse ajdtなどのアスペクト指向の関数をIDEに簡単に統合できるようにします。
外部依存関係。
Spring-JDBC.jar:このJARファイルには、SpringのJDBCデータアクセスをカプセル化するすべてのクラスが含まれています。
外部依存関係スプリングビーンズ、スプリングダオ。
spring-test.jar: Junitなどのテストフレームワークの単純なカプセル化
Spring-tx.jar: TXトランザクション処理用のSpring's Jar
Spring-Expression.jar:スプリング式の言語
コントローラーを書く:
パッケージcom.mvc.action; javax.servlet.http.httpsessionをインポートします。 org.springframework.stereotype.controllerをインポートします。 org.springframework.web.bind.annotation.requestmappingをインポートします。 /** *ログイン認証コントローラー */@ControllerパブリッククラスLoginControl {/** * login * @param Session * httpsession * @param Username * @paramパスワード *パスワード * @return */@requestmapping(value = "/login")パブリックストリングログインセッション、sistring estring save、String estring、String Pirtss ins firs session.setattribute( "username"、username); // Redirect Return "Redirect:hello.action"; }/** * systemを終了 * @paramセッション *セッション * @return * @return例外 */@requestMapping(value = "/logout")public string logout(httpsession session)スロー例外{// clear session.invalidate(); "redirect:hello.action"を返します。 }}インターセプターを書く:
パッケージcom.mvc.interceptor; javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。 javax.servlet.http.httpsessionをインポートします。 Import org.springframework.web.servlet.handlerInterceptor; Import org.springframework.web.servlet.modelandview; /***ログイン認証インターセプター* /パブリッククラスログニインターセプターは、ハンドラーインターセプターを実施します{ /***ハンドラーが実行された後、このメソッドを呼び出します* /public void afterquest request(httpservletresponse応答、httpservletresponse応答、httpservletresponse応答、オブジェクトハンドラー、例外exp) returns*/public void posthandle(httpservletrequest request、httpservletresponse応答、オブジェクトハンドラー、モデルアンドビューmodelandview)は例外{}/***ハンドラー実行の前に呼び出されます*/public boolean prehandle(httpservletrequestリクエスト、httpservletresprespreconse response、httpservletrespreresprerespersprerespersprerespersprerespreresperseprespreresperseprespersprerespersephrean url = request.getRequesturi(); //url:login.jspは公開されています。このデモは、login.jspを除いて傍受されます。他のURLは(url.indexof( "login.action")> = 0){return true; } //セッションhttpsession session = request.getSession()を取得します。 string username =(string)session.getAttribute( "username"); if(username!= null){return true; } //条件が条件を満たしていない場合は、ログインインターフェイスrequest.getRequestDispatcher( "/web-inf/jsp/login.jsp")。 falseを返します。 }} SpringMVC構成ファイル:
<?xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns:aop = "http://www.springframework.org/schema/aop xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns:context = "http://www.springframework.org/schema/context" XMLNS:MVC = "http://www.springframework.org/schema/mvc" xsi:schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context/spring-context-4.0.sd http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <! - コンポーネントスキャンを使用 - > <! - アクションをスキャンし、スプリングコンテナに登録し、スプリングコンテナでアクションを自動的に構成します - > <> name = "/hello.action"> </bean> - > <! - プロセッサマッパーハンドラーラッピング - > <bean/> <bean> <プロパティname = "messageconverters"> <list> <bean> </bean> </list> </property> </bean> <! - view resolver-> < value = "org.springframework.web.servlet.view.jstlview"> </property> <property name = "precix" value = "/jsp/"/> <プロパティname = "suffix" value = "。Jsp"/> </bean> <このタグは、注釈 - > <MVC:アノテーションドリブン> </MVC:アノテーションドリブン> <! - インターセプター - > <MVC:インターセプター> <! - 順次実行、> <MVC:インターセプター> <MVC:マッピングパス=」 </mvc:インターセプター> </beans>
ログインインターフェイス:
<%@ page Language = "Java" Import = "Java.util。*" PageEncoding = "UTF-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core"プレフィックス= "c"%> <%string path = request.getextpath(); string basepath = request.getscheme()+"://"+request.getServername()+":"+request.getServerport()+path+"/"; %> <!doctype html public " - // w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= basepath%>"> <tittite> my jsp 'login.jsp'スタートページ</title> <meta http-equiv = "pragma" http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "content =" 0 "> <meta http-equiv =" keyword1、keyword3 "keyword3"> <meta http-equiv = "content =" type = "text/css" href = "styles.css"> - > </head> <body> <form action = "$ {pagecontext.request.request.contextpath}/login.action" method = "post"> username:<入力タイプ= "テキストname" name = "username"/> <入力タイプ= < value = "login"/> </form> </body> </html>正常にログインした後、インターフェイスにジャンプします
hello.jsp
<%@page Language = "Java" Import = "Java.util。*" PageEncoding = "utf-8"%> <%@taglib uri = "http://www.springframework.org/tags" freix = "spring%> <%@http://www.spring/spring- prefix = "form"%> <%@taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> <%string path = request.getContextPath(); string basepath = request.getscheme()+"://"+request.getServername()+":"+request.getServerport()+path+"/"; %> <!doctype html public " - // w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= basepath%>"> <titl> my jsp 'hello.jsp' hello.jsp 'スタートページ</タイトル> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "content =" 0 "> <meta http-equiv =" keyword1、keyword3 "keyword3"> <meta http-equiv = "content =" type = "text/css" href = "styles.css"> - > </head> <body> current user:$ {username} <c:if test = "$ {username!= null}"> <a href = "$ {pagecontext.request.request.contextpath} </body> </html> hellocontrol.java、私はそれをHelloworldの形で書き、プロジェクトに従って変更する必要があります。
パッケージcom.mvc.action; org.springframework.stereotype.controllerをインポートします。 Import org.springframework.ui.model; org.springframework.web.bind.annotation.requestmappingをインポートします。 //このクラスをハンドラープロセッサとしてタグ付けします@Controller public class hellocation {@RequestMapping( "/hello")//このコントロールクラスに対応するURLを開発しますpublic String hello(モデルモデル){文字列メッセージ= "springmvc"; // Model Model.Addattribute( "Message"、message)に属性を追加します。 「こんにちは」を返します。 } // public ModelandView HandLeRequest(httpservletrequest request、// httpservletresponse応答)スロー例外{// // //ページの情報の行をプロンプト//文字列メッセージ= "Hello World!"; // // //リクエストオブジェクトを介してページ上の情報を表示// //Request.setAttribute("message "、message); // // modelandview modelandview = new ModelandView(); // // request.setAttribute()に相当する、データをページに渡して表示する// // model data // modelandview.addobject( "message"、message); // // viewを設定する// modelandview.setviewname( "hello"); // // modelandviewを返します。 //}}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。