パッケージcom.demo。 輸入 java.io. * ; インポート java.sqlの。* ; 輸入 java.utilの。* ; インポートのjavax.servlet。* ; 輸入のjavax.servlet.http *。; 輸入javax.servlet.annotation.WebServlet; @WebServlet( "/queryproduct.do" ) パブリック クラス QueryProductServletが延びHttpServletを{ プライベート 静的 最終 長いのserialVersionUID = 1L 。 接続dbconn = nullを。 公共 のボイドINIT(){ 文字列ドライバ = "com.jdbc.mysql.Driver" 。 文字列するDBURL = "はjdbc:mysqlの:// localhostを:3306 / prod_data" ; 文字列名 =「ルート」。 文字列のパスワード = "123456" ; 試す{ Class.forNameの(ドライバ)// 加载驱动程序 // 创建连接对象 dbconn = したDriverManager.getConnection(するDBURL、ユーザ名、パスワード); } キャッチ(ClassNotFoundExceptionがe1の){ System.out.printlnは(E1)。 } キャッチ(のSQLException E2){} } 公共 ボイドのdoPost(HttpServletRequestのリクエスト、 HttpServletResponseの応答)が スローServletExceptionがのは、IOException { 文字列のProductID = request.getParameter( "商品コード" )。 試す{ 文字列は、SQL = "WHEREのprod_id =製品SELECT * FROM?" ; PreparedStatementてpstmt = dbconn.prepareStatement(SQL)。 pstmt.setString( 1 、商品コード)。 ResultSetのRST = pstmt.executeQuery()。 // するSystem.out.println(SQL); もし(rst.next()){ 製品製品 = 新製品(); product.setProd_id(rst.getString( "PROD_ID" )); product.setPname(rst.getString( "PNAME" )); product.setPrice(rst.getDouble( "価格" )); product.setStock(rst.getInt( "株式" )); 。でrequest.getSession()のsetAttribute( "製品" 、製品)。 response.sendRedirect( "displayProduct.jsp" ); } 他{ response.sendRedirect(「エラー。 } } キャッチ(のSQLException E){ e.printStackTrace(); } } }
<%@ページのcontentType = " text / htmlの;のcharset = UTF-8 " pageEncodingは= " UTF-8 " %> < htmlの> < ヘッド> < タイトル>商品查询</ タイトル> </ ヘッド> < 身体> < フォームアクション= "queryproduct.do" メソッド= "ポスト" > 请输入商品号: < 入力タイプ= "テキスト" 名前= "商品コード" サイズ=」15" > < 入力タイプ= "提出" 値を"确定" = > </ フォーム> </ ボディ> </ HTML >
パッケージcom.demo。 インポートしたjava.io.Serializable; パブリック クラスの製品は、実装Serializableを{ プライベート文字列のprod_idを。 プライベート文字列のpname。 プライベート ダブル価格。 プライベート int型の株式。 パブリック製品(){} 公共製品(文字列PROD_ID、文字列PNAME、二重価格、int型のストック){ この .prod_id = PROD_ID。 この .pname = pnameに。 この .price = 価格。 この .stock = 株式; } パブリック文字列getProd_id(){ 戻りPROD_ID。 } 公共 ボイドsetProd_id(文字列PROD_ID){ この .prod_id = PROD_ID。 } パブリック文字列getPname(){ 戻りPNAME。 } 公共 ボイドsetPname(文字列PNAME){ この .pname = PNAME。 } 公共 ダブルgetPrice(){ 戻り価格。 } 公共 ボイド setPrice(ダブル価格){ この .price = 価格。 } 公共 INT getStock(){ 戻りストックを、 } 公共 ボイド setStock(int型のストック){ この .stock = ストック。 } }
エラー次のように: