実験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