1、サーブレットは、登録のアイデアを実現します:
2、エンジニアリング構造
3、達成するための機能:
(1)HTMLは、データの収集を有効にします。
<ボディBGCOLOR = " アクア" > <センター> <H3>注册</ H3> <フォームアクション= " / Register_servlet_war_exploded /登録"メソッド= " ポスト" > 用户名:の<input type = " テキスト"の名前は= " アカウント"サイズ= " 12 " > <BR> <BR> 密码:の<input type = " パスワード"名前= " パスワード"サイズ= "12 " > の<input type =" 提出"値= " 注册" > の<input type = " リセット"値= " 取消" > </ FORM> </センター> </ BODY>
(2)サーブレット:データフォームの送信を取得し、地図のセットにそれらをカプセル化する(符号量を低減することができます)
パブリック クラスServletRegisterはjavax.servlet.http.HttpServlet {延び 保護 ボイドのdoPost(するjavax.servlet.http.HttpServletRequest要求、javax.servlet.http.HttpServletResponseの応答)がjavax.servlet.ServletExceptionは、IOException {スロー request.setCharacterEncoding(" UTF-を8 " ); 地図 <文字列、文字列[]>プロパティ= request.getParameterMap()。// 将表单中的数据封装到地図の中の ログインログ= 新しいログイン(); 試す{ BeanUtils.populate(ログ、プロパティ)。 } キャッチ(IllegalAccessExceptionが|InvocationTargetException電子){ e.printStackTrace(); } 試みる{ レジスト(ログ)。 } キャッチ(のSQLException E){ e.printStackTrace(); } response.sendRedirect(request.getContextPath() + " /log.html ")。// 重定向 } 公共 ボイドレジスト(ログインログ)のSQLException {スロー// 数据库 接続CON = ヌル。 試す{ CON = C3p0Utils.getConnection()。 QueryRunner QR =新しいQueryRunner(); 文字列のSQLが = " ログイン値に挿入(?、?)" ; []オブジェクトの挿入 = {log.getAccount()、log.getPassword()}。 qr.update(CON、SQL、挿入)。 } キャッチ(のSQLException E){ スロー 新規のRuntimeException(e)を、 } }
4、提出ゴミ問題をGETとPOST:
(1)ポスト提出:
request.setCharacterEncoding(" UTF-8 ");
サーバコードの直接形式数が多いです。
(2)提出されます:
request.setCharacterEncoding(「UTF-8」)を使用して、この方法は、中国の歪みの問題を解決することはできません。エンコード形式は、下から変更する必要があります。
名前= 新しい文字列(名前、GetBytesメソッド(" ISO-8859-1 ")、" UTF-8 ");
リクエストボディに提出したPOSTリクエストは、符号化歪みを設定することで解決することができます。、符号化方式を提供することにより、要求行に提出されたデータを取得することは認められません。