私は長い間ブログを書いていません。私はあまりにも怠zyで、それに時間を費やすことを嫌うかもしれません。しかし、私はまだ私の心の中でブログを書くことの重要性を知っています。今日から、Java Webを学んだいくつかの小さな例をあなたと共有します。私は個人的には本のあいまいな概念が好きではないので、いくつかのアプリケーションの例にもっと時間を費やしました。この学習方法は、シンプルから伝統的なものから浅いものから深いものまで、私に非常に適していると思います
ナンセンスについて話しましょう、最初の例を始めましょう。
サーブレットは、Oracleの基本的な追加、削除、変更、および検索を実装します
開発環境:JDK7 +MyeClipse10 +Tomcat7.0 +Oracle 11g
まず、データベース作成スクリプトを添付してください。
Table Student(ID varchar2(50)null、name varchar2(50)not null、calssgrent varchar2(50)not null、result varchar(12)nolull)を作成します。学生に挿入(ID、名前、calssgrent、result)値(perseq.nextval、 'Zhang San'、 '33'、 '98')
次の図は、関数を実装するためだけに悪いことではないコード構造図と関数デモンストレーションインターフェイスを示しています。
MMC_01.java
ページ//メインインターフェイスは、追加、変更、削除の方法を提供します
パッケージorg.lsy.servlet; java.io.ioexceptionをインポートします。 java.io.printwriterをインポートします。 Java.sql.Connectionをインポートします。 Java.sql.drivermanagerをインポートします。 java.sql.resultsetをインポートします。 java.sql.Statementをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.http.httpservletをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。 import oracle.jdbc.oracore.tdspatch;パブリッククラスMMC_01は、httpservlet {//ドライバーは、//接続アドレスが各データベースメーカーによって個別に提供される前にクラスパスで構成されたJDBCドライバーのJARパッケージに拡張されるため、パブリック静的な最終文字列dburl = "jdbc:jdbc:oracle:thin:@localhost:1521:liusy"; //データベースに接続するためのユーザー名public static final string dbuser = "scott"; //データベースに接続するパスワードpublic static final string dbpass = "tiger"; public void doget(httpservletrequest request、httpservletResponse応答)Servletexception、ioException {//要求と応答のエンコードを設定します。 Response.setcharacterencoding( "utf-8"); Response.setContentType( "Text/HTML; UTF-8"); //出力ストリームprintwriter out = response.getWriter(); //データベース接続コードtry {connection conn = null; //データベースステートメントへの接続を示すオブジェクトstmt = null; //データベース文字列sqlの更新操作を示しますsql = "inserting student(id、name、calssgrent、result)values('67 '、' liu 12yu '、' 33 '、' 98 ')"; System.out.println(SQL); // 1。クラスクラスを使用してドライバークラスをロードします。forname( "oracle.jdbc.driver.oracledriver"); // 2。データベースに接続conn = drivermanager.getConnection(dburl、dbuser、dbpass); //3。ステートメントインターフェイスは、接続インターフェイスstmt = conn.createStatement()を介してインスタンス化する必要があります。 // rsを使用してクエリ結果を取得します。ここではSQLステートメントに *使用しないことが最善です *フィールドが少ないので、怠け者になりたいだけです - 、 - 結果rs = stmt.executequery( "Select * from Student"); out.println( "<!doctype html public/" - // w3c // dtd html 4.01 transitional // en/">"); out.println( "<head> <title> aサーブレット</title> </head>"); out.println( "<body>"); //出力テーブルヘッダーout.print( "<table align = 'center' border = '1'> <tr> <td> name" + "</td> <td> class </td> <td> score </td> <td> </td> <td> delete </td> </tr>"); while(rs.next()){//データベース文字列ID = rs.getString( "id")でidを取得します。 // Elements Out.Printの列を出力( "<tr> <td>"+rs.getString( "name")+"</td> <td>"+rs.getString( "calssgrent")+""+"</td> <td> <td>"+rs.getString( "result")+" href = 'updatePage?id = "+id+"'> modify </a> </td> "+" <td> <a href = 'delete?id = "+id+"'> delete </a> </td> </tr> "); } out.println( "<td> <a href = addpage>データの追加</a> </td>"); out.println( "</body>"); out.println( "</html>"); conn.close(); } catch(Exception e){e.printstacktrace(); } out.flush(); out.close(); }}updatepage.java //データを変更するようにして、変更されたデータを送信して更新します
パッケージorg.lsy.servlet; java.io.ioexceptionをインポートします。 java.io.printwriterをインポートします。 Java.sql.Connectionをインポートします。 Java.sql.drivermanagerをインポートします。 java.sql.resultsetをインポートします。 java.sql.Statementをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.http.httpservletをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。 com.sun.crypto.provider.rsacipherをインポートします。 public class updatePageはhttpservletを拡張します{//接続アドレスは各データベースメーカーによって個別に提供されるため、パブリックスタティック最終文字列dburl = "jdbc:oracle:thin:@localhost:1521:liusy"; //データベースに接続するためのユーザー名public static final string dbuser = "scott"; //データベースに接続するパスワードpublic static final string dbpass = "tiger"; public void doget(httpservletrequest request、httpservletResponse応答)throws servletexception、ioexception {string id = request.getParameter( "id"); //リクエストと応答のエンコードを設定します。それ以外の場合、Garled Codeはページリクエストに簡単に表示されます。SetchAracterEncoding( "utf-8"); Response.setcharacterencoding( "utf-8"); Response.setContentType( "Text/HTML; UTF-8"); printwriter out = response.getWriter(); try {connection conn = null; //データベースステートメントへの接続を表すオブジェクトstmt = null; //データベース更新操作//1。クラスクラスを使用してドライバークラスをロードします。 // 2。データベースに接続conn = drivermanager.getConnection(dburl、dbuser、dbpass); // 3。ステートメントインターフェイスは、接続インターフェイスstmt = conn.createStatement()を介してインスタンス化する必要があります。 // rsを使用してクエリの結果を取得します。ここでSQLステートメントを使用しないことが最善です *私はフィールドが少ないので、私は怠けています - 、 - 結果rs = stmt.executequery( "select * from Student Where id = '"+id+"'"); while(rs.next()){out.println( "<!doctype html public/" - // w3c // dtd html 4.01 transitional // en/">"); out.println( "<html>"); out.println( "<head> <title> aサーブレット</title> </head>"); out.println( "<body>"); //スコアの形式を入力し、更新するためにそれを送信します。print( "<form action = 'update' method = 'post'>"); out.print( "<table align = 'center'> <tr> <td> name:<入力タイプ= 'text' value = '"+rs.getString( "name")+"'name = 'name' size = 20> </td> </tr> "); out.print(" <tr> <td> class:<入力タイプ= 'テキスト=' text 'value =' "+rs.getString(" calssgrent ")+" 'name =' greent 'size = 20> </td> </tr> "); value = '"+rs.getString(" result ")+"' name = 'result' size = 20> </td> </tr> "); value = 'Modify'> <入力タイプ= 'リセット' value = 'reset'> </td> </tr> </table> </form> "); out.print(" </body> </form> "); out.println(" </html> ");} out.flush(); out.close();} catch(ectionce e) }}
update.javaは変更するデータを受信し、データベースを更新します
パッケージorg.lsy.servlet; java.io.ioexceptionをインポートします。 java.io.printwriterをインポートします。 Java.sql.Connectionをインポートします。 Java.sql.drivermanagerをインポートします。 java.sql.Statementをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.http.httpservletをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。パブリッククラスのアップデートはhttpservletを拡張します{//ドライバーは、//接続アドレスが各データベースメーカーによって個別に提供される前にクラスパスで構成されたJDBCドライバーのJARパッケージです。 //データベースに接続するためのユーザー名public static final string dbuser = "scott"; //データベースに接続するパスワードpublic static final string dbpass = "tiger"; public void doget(httpservletrequest request、httpservletResponse応答)throws servletexception、ioexception {try {request.setcharacterencoding( "utf-8"); Response.setcharacterencoding( "utf-8"); Response.setContentType( "Text/HTML; UTF-8"); printwriter out = response.getWriter();接続conn = null; //データベースステートメントへの接続を表すオブジェクトstmt = null; //データベース更新操作//パラメーター文字列ID = request.getParameter( "id")を取得します。 System.out.println(id);文字列名= request.getParameter( "name"); string grant = request.getParameter( "Grent");文字列結果= request.getParameter( "result"); // squl string sqlstring = "update desute desute set name = '"+name+"'、"+"calssgrent = '"+grent+"'、result = '"+result+"' where id = '"+id+"'"; // 1。クラスクラスを使用してドライバークラスをロードします。forname( "oracle.jdbc.driver.oracledriver"); // 2。データベースに接続conn = drivermanager.getConnection(dburl、dbuser、dbpass); // 3。ステートメントインターフェイスは、接続インターフェイスstmt = conn.createStatement()を介してインスタンス化する必要があります。 int pd = stmt.executeupdate(sqlstring); if(pd!= 0){out.println( "<!doctype html public/" - // w3c // dtd html 4.01 transitional // en/">"); out.println( "<html>"); out.println( "<head> <title> aサーブレット</title> </head>"); out.println( "<body>"); out.print( "更新されました<br> <a href = mmc_01> view list </a>"); out.println( "</body>"); out.println( "</html>"); } out.flush(); out.close(); stmt.close(); conn.close(); } catch(Exception e){// todo:handle例外}} public void dopost(httpservletrequest request、httpservletresponse応答)Servletexception、ioexception {doget(request、response); }}Addpage .java、データページを追加します
パッケージorg.lsy.servlet; java.io.ioexceptionをインポートします。 java.io.printwriterをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.http.httpservletをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。パブリッククラスアドページは、httpservlet {public void doget(httpservletrequest request、httpservletresponse応答)servletexception、ioexception {//リクエストと応答のエンコードを設定します。 Response.setcharacterencoding( "utf-8"); Response.setContentType( "Text/HTML; UTF-8"); printwriter out = response.getWriter(); out.println( "<!doctype html public/" - // w3c // dtd html 4.01 transitional // en/">"); out.println( "<html>"); out.println( "<head> <title> aサーブレット</title> </head>"); out.println( "<body>"); //スコアの形式を入力し、それを送信してadd.print( "<form action = 'add' method = 'post'>"); out.print( "<table align = 'center'> <tr> <td> name:<入力型= 'テキスト' name = 'name' size = 20> </td> </tr>"); out.print( "<tr> <td> class:<入力タイプ= 'テキスト' name = 'グレント'サイズ= 20> </td> </tr>"); out.print( "<tr> <td>スコア:<入力型= 'text' name = 'result' size = 20> </td> </tr>"); out.print( "<tr> <td> <入力タイプ= 'submit' value = 'add'> <入力型= 'reset' value = 'reset'> </td> </tr> </table> </form>"); out.println( "<tr> <td> <a href = mmc_01> view list </a> </td> </tr>"); out.println( "</body>"); out.println( "</html>"); out.flush(); out.close(); }}追加するアドページから送信を追加し、データベースを更新します
パッケージorg.lsy.servlet; java.io.ioexceptionをインポートします。 java.io.printwriterをインポートします。 Java.sql.Connectionをインポートします。 Java.sql.drivermanagerをインポートします。 Java.sql.preparedStatementをインポートします。 java.sql.resultsetをインポートします。 java.sql.Statementをインポートします。 javax.servlet.servletexceptionをインポートします。 javax.servlet.http.httpservletをインポートします。 javax.servlet.http.httpservletrequestをインポートします。 javax.servlet.http.httpservletResponseをインポートします。 com.sun.org.apache.xerces.internal.impl.io.utf8readerをインポートします。 import oracle.jdbc.oracore.tdspatch; public class addはhttpservletを拡張します{//ドライバーは、//接続アドレスが各データベースメーカーによって個別に提供されるJDBCドライバーのJARパッケージにあります。 //データベースに接続するためのユーザー名public static final string dbuser = "scott"; //データベースに接続するパスワードpublic static final string dbpass = "tiger"; @Override Protected void dopost(httpservletrequest req、httpservletresponse rep)servletexception、ioexception {// todo auto-fenated method stub doget(req、rep); } public void doget(httpservletrequest request、httpservletResponse応答)servletexception、ioexception {//リクエストと応答のエンコードを設定します。 Response.setcharacterencoding( "utf-8"); Response.setContentType( "Text/HTML; UTF-8"); //出力ストリームprintwriter out = response.getWriter(); //データベース接続コードtry {connection conn = null; //データベースへの接続を表すオブジェクトpstmt = null; //データベース文字列namestring = request.getParameter( "name")の更新操作を示します。 string grantstring = request.getParameter( "Grent"); string resultString = request.getParameter( "result"); System.out.print(namestring); string sql = "学生に挿入(id、name、calssgreant、result)値(perseq.nextval、 '"+namestring+"'、 '"+Grentstring+"'、 '"+resultString+"'); // 1。ドライバークラスをロードするにはクラスクラスを使用します。 dbpass) e.printstacktrace();
web.xml構成ファイル
<?xml version = "1.0" encoding = "utf-8"?> <web-appバージョン= "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instcance" xsi:schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name> </display-name> <Servlet-Name> MMC_01 </servlet-name> <servlet-class> org.lsy.servlet.mmc_01 </servlet-class> </servlet> <servlet> <servlet-name> delete </servlet-name> <servet-class> org.lsy.lsy.servlet.delete <Servlet-name> add </servlet-name> <servlet-class> org.lsy.servlet.add </servlet-class> </servlet> <servlet> <servlet-name> addpage> ardpage> org.lsy.servlet.addpage </servlet> </servlet> </servlet> <サーブレットクラス> org.lsy.servlet.updatepage </servlet-class> </servlet> <servlet> <servlet-name> update </servlet-name> org.lsy.servlet.update </servet-class> </servlet> <servlet-name> <url-pattern>/mmc_01 </url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name> delete </servet-name> <url-pattern>/delete </url-pattern> </servet-mapping> <servlet-name> </servlet-name> </servlet-mapping> <servlet-mapping> <servlet-name> addpage </servlet-name> <url-pattern>/addpage </url-pattern> </servlet-mapping> <servlet-name> updatepage </servet-name> <url-pattern> <url-pattern> </url-pertern> </url-pertern> <サーブレットマッピング> <Servlet-Name>更新</servlet-name> <url-pattern>/update </url-pattern> </servlet-mapping> </web-app>
私は老鳥ではありません、私は学んでいます。間違いがあるかどうかを証明してください。上記のコードには、多くの重複した部品と多くの不合理な部分があります。データベース接続と比較して、操作サーブレットに直接さらされます。より直感的に見るために、私はそれを変えませんでした...
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。