層制御コード:
@Controller パブリック クラスLoginController { @RequestMapping( "/ログイン" ) のパブリック文字列のログイン(文字列名、文字列のパスワード、HttpServletRequestのリクエスト){ 場合( "zhangsan" .equals(ユーザー名)&& "123" .equals(パスワード)){ システム.out.println( "登录成功" )。 。でrequest.getSession()のsetAttribute( "ユーザ名" 、ユーザ名)。 戻る "リダイレクト:/アカウント/ findAllの" ; } 他{ するSystem.out.println( "登录失败" )。 ; } } }
インターセプタ層コード:
パブリック クラス LoginInterceptor 実装{からHandlerInterceptor / ** *ログイン認証 *セッションがログインしている場合は情報、リリース *は、セッション情報が傍受にログインされていない場合は、 決定された*ログイン要求、ログイン要求であれば、直接解除するかどうか * / @Override 公共 ブールザ・preHandle(HttpServletRequestをリクエスト、HttpServletResponseの応答、オブジェクトハンドラ)がスロー例外{ // リクエストパスを取得 文字列requestURI = Request.getRequestURIを(); //は、登録要求があるかどうかを判断する IF(requestURI.contains( "ログイン" )){ // もしログイン要求、ダイレクトリリース リターン trueに; } // セッションから登録情報を取得 )(オブジェクト名=でrequest.getSessionのgetAttributeを( "ユーザ名。" ); IF(!ユーザ名= nullの){ // ログイン情報、リリースとのセッション 復帰 trueに; } 他{ / / セッション情報は、ログインページにジャンプし、ログインしていない response.sendRedirect(「/ login.jspを」); を返す 偽; } } }
<%@ページisELIgnored = "false"とのcontentType = "text / htmlの;のcharset = UTF-8"言語= "javaの" %> <HTML> <HEAD> <TITLE>タイトル</ TITLE> < -引入CSS样式! - > <リンクREL = "スタイルシート" HREF = "$ {pageContext.request.contextPath} /css/bootstrap.min.css"> </ head> <body> <フォームクラス = "フォーム水平"役割=」フォーム"メソッド= "ポスト"アクション= "$ {pageContext.request.contextPath} /ログイン"> <divのクラス = "フォームグループ"> <ラベルのためのユーザ名"=" クラス =" COL-SM-2コントロールラベル「>用户名</ label>は <divのクラス = "COL-SM-10"> の<input type = "text"のクラス= "フォームコントロール" idが= "ユーザ名"の名前は= "ユーザ名" プレースホルダ => "输入用户の名を请" </ div> </ div> <divのクラスには、 = "フォームグループ"> <ラベル用 = "お金" クラス = "COL-SM-2コントロールラベル">密码</ label>は <divのクラス = "COL-SM-10"> の<input type = "パスワード" クラス = "フォームコントロール" ID = "お金"の名前= "パスワード" プレースホルダ = "请输入密码"> </ div> </ div> <DIV クラス = "フォームグループ"> <DIV クラス = "COL-SM-オフセット2 COL-SM-10"> <ボタンタイプ= "送信"クラス = "BTN BTN-デフォルト">登录</ボタン> </ div> </ div> </ FORM> </ BODY> <! -引入JS文件- > ます。<script type = "text / javascriptの" SRC = "$ {pageContext.request.contextPath} /js/jquery-1.9.1.js"> </ SCRIPT> <スクリプトタイプ= "テキスト/ javascriptの" SRC = "$ {pageContext.request.contextPath} / JS /ブートストラップ.min.js "> </ SCRIPT> </ HTML>
<?xml version = "1.0"エンコード= "UTF-8"?> <豆のxmlns = "http://www.springframework.org/schema/beans" のxmlns:XSI = "http://www.w3.org / 2001 / XMLスキーマ・インスタンス" のxmlns:コンテキスト = "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.xsd http://www.springframework.org/schema/contextのhttp:// WWW .springframework.org /スキーマ/コンテキスト/春-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <! -扫描包、创建类对象- > <コンテキスト:コンポーネント・スキャン塩基パッケージ = "com.itheima.controller"> </コンテキスト:コンポーネントスキャン> <! -ビューリゾルバ- > <豆のクラス = "org.springframework.web.servlet.view.InternalResourceViewResolver"> <プロパティ名= "接頭辞"の値= "/ページ/"> </プロパティ> <プロパティ名= "サフィックス"値= "JSP。"> </プロパティ> </豆> < -注釈が運転- >! <MVC:注釈駆動型> </ MVC:アノテーション・ドリブン> < -迎撃- >! <MVC:インターセプタ> <MVC:インターセプター> <MVC:マッピング・パス= "/ **" /> <! -ブロックされた場合静的リソースは、あなたがリリースを設定する必要があります- > <MVC:除外マッピングパス= "/ JS / *"> </ MVC:除外マッピング> <MVC:除外マッピングパス= "/ CSS / *"> </ MVC:除外マッピング> <MVC:除外マッピングパス= "/フォント/ *"> </ MVC:除外マッピング> <豆のクラス = "com.itheima.interceptor.LoginInterceptor"> </豆> </ MVC:迎撃> </ MVC:インターセプタ> < -静态资源放行- >! < - <MVC:!リソースマッピング= "/のJS / *」場所= "/ JS /"> </ MVC:リソース> - > < -静态资源全部放行- >! <MVC:デフォルト -servletハンドラ> </ MVC:デフォルト -servletハンドラ> < /豆>