ヒント:
https://shihuan.site/OnlinePaper/jsp/
これはテスト用URLのすべての機能の最後の実現である、我々は着陸のテストを歓迎しますが、原因登録メッセージの数が限られ、そのテストのためのテストアカウント
アカウント:Zhiwang
パスワード:123456Aa
インタフェースディスプレイ:
環境の選択:学期選択科目のJavaEEコースとして、私たちのチーム選択したプロジェクトはまた、Webプロジェクトを使用する必要がありながら、コースのカリキュラムのデザインの多くは、ウェブサイトのデザインである必要があり、私はこのペアプログラミング、プロジェクト開発のための開発環境としてのJavaを選択した一方、しかし、テストのJavaEE学習の効果を検討し
フロントエンド:HTML + CSS +ブートストラップ
主にブートストラップフロントエンド設計を使用して
バックエンド:サーブレット+ Tomcatの+ JavaBeanの+ JDBC +アヤックス
気持ちが今回のプロジェクトは練習コースJavaEEのあったことです
私は主に、登録ページを着陸に関与し、設計内容の回答話題演算部を作成しました。
着陸一部:
コンフィギュレーション・ファイルをロードし、JDBCデータベース、データベース接続プールアリDurid接続を使用します
パッケージJDBCUtils; インポートcom.alibaba.druid.pool.DruidDataSourceFactory; インポートするjavax.sql.DataSource; インポートにjava.io.IOException; インポートするjava.io.InputStream; インポートのjava.sql.Connection; インポートます。java.sql.SQLException; インポートjava.util.Propertiesは; / ** *ツールは、JDBC接続プールDurid使用 * / パブリック クラスJDBCUtils { プライベート 静的; DataSourceのDS 静的{ 試み{ // 1.負荷プロファイル のプロパティプロ= 新しい新しいプロパティ(); // 使用のClassLoaderの負荷プロファイルは、バイトの入力ストリームを取得 するInputStreamが= JDBCUtilsである。クラス .getClassLoader()getResourceAsStream( "druid.properties。" ); Pro.load(IS); // 2.接続プールオブジェクトの初期化 DSを= DruidDataSourceFactory.createDataSource(PRO); } キャッチ(IOExceptionをE){ e.printStackTrace(); } キャッチ(例外E){ e.printStackTrace(); } } / ** *取得し、接続プールオブジェクト * / パブリック 静的データソースをgetDataSource( ){ 戻りDSを; } / ** *获取连接接続对象 * / パブリック 静的接続のgetConnection()スローのSQLExceptionは、{ 戻る )(ds.getConnectionします。 } }
クラスは、ユーザーの口座番号とパスワードと、対応するgetおよびsetメソッドメソッドが含まれています
パッケージのユーザー。 パブリック クラスユーザー{ プライベート int型のID。 プライベート 文字列のユーザ名。 プライベート 文字列のパスワード。 公共 ボイド SETID(int型のID){ この .ID = ID。 } 公共 ボイドsetUsername(文字列名){ この .username = ユーザ名; } 公共 ボイドするsetPassword(文字列のパスワード){ このみましょう。パスワード= パスワード。 } 公共 INT のgetId(){ 戻り値のID。 } パブリック文字列getUsername(){ 戻りユーザ名; } パブリック文字列getPasswordに(){ 戻りパスワード。 } パブリックユーザ(文字列名、文字列のパスワード){ この .username = ユーザ名; このみましょう。パスワード= パスワード; } @Override パブリック文字列のtoString(){ 戻り "ユーザー{" + "ID =" + ID + "ユーザ名=" '+名+ '\'' + "パスワード= '" +パスワード+' 「}」。 } }
パブリックユーザログイン(ユーザーloginUser){ しようと{ // 1.编写のSQL 文字列のSQL = "選択*ユーザーからどこ名=?とパスワード=?" ; // 2.调用問い合わせ方法の ユーザのユーザ= template.queryForObject(SQL、新しい。BeanPropertyRowMapper <ユーザー>(ユーザークラス)、 loginUser.getUsername()、loginUser.getPassword()); リターンユーザー; } キャッチ(DataAccessException電子){ e.printStackTrace(); // 记录日志 リターン ヌル。 } } }
クラスとBeanPropertyRowMapper SQL文のクエリで利用UserDaoテンプレート、クエリ結果とユーザークラスにパッケージを返します。
アクションを提出するランディングページのフォームは、フォームがユーザーにrequest.GetParameter()アカウントのパスワードとパッケージングを介して取得する方法を提出しているとき、がloginservletに設定して、クエリをuserDao使用し、クエリが空の場合は間違っていることを証明、着陸に失敗しています。
それは確認コードを送っ除いて、原則として登録ページは、基本的に同じです。:ここではアリクラウドSendSMS機能は、SMS、特定のプロセスを送信、次のようにされています
ネイティブランダムコードを生成--------->ランダム符号----------->コードが格納されている携帯電話機能に送信されるパッケージ化ジャーaliyunを使用----------のセッション要求()>セッション格納されたユーザ入力すべき同一の、現在の登録フォームの提示、パッケージが登録されているユーザと同じアラインメントです。
これでは、フロントエンドの登録プロセスのアカウントのパスワードは検証に成功したならば、ユーザ体験の感覚を向上させ、サーバーの負担を軽減するためにフォームを送信し、JavaScriptの正規表現方法の妥当性確認によって検証されます。
プロジェクトの最も難しい部分は、ランダムに結果の答えをかける生成描かれた感じにする方法です。2人の前にコードのこの部分では、再修正を改善し、回答を算出する計算式を生成する容易にするために簡略化。最後に、使用して考えます
減らすために()スクリプト内のeval JavaScript関数は、ランダムに、最終的な答えを得るために、スクリプトの実行など方程式を描画しますので、私たちは直接計算に置き換えることができ三角方程式値、除算や平方根の式で取得する必要があり、仕事の難しさは、(複数の括弧があるので、非常に困難な場合には)我々は最終的な答えを計算し、簡素化する括弧で指定された式で表示できます。
私たちは、その上、このような被写体の歴史など、いくつかの追加機能を取得し、
経験と収穫:
このプロジェクトは、実際にプロジェクト「を行って、学習」でした。JavaEEの技術が今必要とされていないが、必要な機能に基づいて関連コンテンツを学習困難に見えますが、学習の過程では、実際にまたはいくつかの問題がありました。また、基盤を築くために、プロジェクトの背後にあるチームとして、お互いに、ネットワークアクセスから学びながら、ペアプログラミングプロセス。