中国の文字化けを解決するための技術を使用してユーザーがログオンを書き換えるサーブレットフィルタ技術を使用してJavaweb

実験3つの最初のJSPページがコピーされました。

WebContent-> WEB-INF->バージョン8.0以下のlibのjarパッケージには、コピーすることを忘れないように持っています。

SRCでJavaリソース - > cn.edu.henu.bean(User.javaユーザデータベース操作)とcn.edu.henu.util(DBConnection.javaデータベース接続動作)は、2つのパケット

<?xml version = "1.0"エンコード= "UTF-8"?> 
の<web-appののxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"のxmlns = "のhttp:// javaのsun.comの/ XML / NS / JavaEEの"XSI:のschemaLocation =" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0 .xsd」ID = "WebApp_ID"バージョン= "3.0"> 
  <表示名> ws_shiyan3 </表示名> 
  <歓迎-ファイル・リスト> 
    <歓迎-ファイル> index.htmlを</歓迎ファイル> 
    <ようこそ-ファイル>のindex.htm </歓迎ファイル> 
    <歓迎-ファイル> addUser.jsp </歓迎ファイル>

  

ユーザがログインを書き換えるサーブレット技術の使用

SRC - >新規「cn.edu.henu.servletを」パッケージを作成する- >サーブレットクラス名「LoginCheckServlet」を作成します- > URLマッピングが「/ CheckServlet」に設定されている
のdoPost()メソッドを書き換えると、第三の実験のcheck.jsp着陸認証コードをコピーすることができます

文字列名= request.getParameter( "名前"); 
  ストリングPWD = request.getParameter( "PWD")。
  PreparedStatementのPT = NULL; 
  接続コン= NULL; 
  ユーザーのユーザー= NULL; 
  試す{ 
   // JDBC访问数据库
   CON = DBConnection.openConnection(); //获取数据库连接
   文字列のSQL = "?WHEREユーザー= AND passwod =ログインSELECT * FROM"; 
    PT = con.prepareStatement(SQL)。
    pt.setString(1名)。
    pt.setString(2、PWD)。
    ResultSetのRS = pt.executeQuery()。
    System.out.println( "?????????????????????"); 
    IF(rs.next())
    { 
     response.sendRedirect( "connsuccess.jsp")。 
    response.sendRedirect(」
   
   e.printStackTrace();}

  

また、このJSP +サーブレットのユーザのログインを参照することができます
【注意】ここで、ユーザのユーザ= NULL;黄色のアラームの下に、私はちょうどコメントアウト始めたので、結果CheckServletをページ404上で、彼らはコメントすることができます前に、それ以降のキャンセル

サーブレットを設定するには、2つの方法があります
LoginCheckServletページが生成①自動的に@WebServlet(「/ CheckServletを」)
②web.xmlの下方に配置されたが

  <サーブレット> 
    の<servlet-name>のLoginCheckServlet </サーブレット名> //クラス名を使用してオブジェクトを作成する
    の<servlet-class>のcn.edu.henu.servlet.LoginCheckServlet </サーブレットクラス> //サーブレットクラスが独自に作成しました
  </サーブレット> 
  <サーブレットを-mapping> 
    の<servlet-name>のLoginCheckServlet </サーブレット-name>は、オブジェクト//の実際の実装
    の<url-pattern> / CheckServlet < /のurl-pattern> // URLマッピングカスタム
  </サーブレット-mapping>

  

注]ああ、ここに一致する名前

 


それ以外の場合はエラーになり、2つの方法が唯一の構成を選択することができます[注意]
中国の文字化けフィルターを解決するための技術を使用します

SRC - >新しいフィルタを(パッケージ名は"cn.edu.henu.Filter"で、フィルター名が"EncodingFilter"で、MAPは私の名前のEncodingFilterを変更しなかった
( "UTF-8")のdoFilter下(にrequest.setCharacterEncoding入力し);へ

公共のボイドのdoFilter(ServletRequestの要求、ServletResponseを応答は、れるFilterChainチェーン)にIOExceptionが、ServletExceptionが{スロー
  // TODO自動生成されたメソッドスタブ
  //ここにコードを配置
  request.setCharacterEncoding( "UTF-8"); 
  //フィルタチェーンに沿って要求通過
  chain.doFilter(要求、応答)。
 }

 

    <フィルター> 
    <フィルタ名> EncodingFilter </フィルタ名> 
    <フィルタクラス> cn.edu.henu.filter.EncodingFilter </フィルタクラス> 
  </フィルタ> 
  <フィルタマッピング> 
    <フィルタ名> EncodingFilter </フィルタ名> 
    の<url-pattern> / * </のurl-pattern> //拦截所有请求
  </のfilter-mapping>

 


オリジナルます。https://blog.csdn.net/wwjlovecyndi/article/details/90300255

おすすめ

転載: www.cnblogs.com/qbdj/p/10956673.html