크리에이트 DAO 클래스와 클래스 책을
다오类: 패키지 cn.edu.tzc.dao; java.sql의를 가져옵니다. *; 수입 인 java.util.ArrayList; 수입 cn.edu.tzc.bean.books; 공용 클래스 BookDao { 공공의 ArrayList queryAllBooks ()는 예외 {던졌습니다 연결 CONN = NULL을; 책 = 새로운 ArrayList를 ()를 ArrayList와; {시도 Class.forName을 ( "com.microsoft.sqlserver.jdbc.SQLServerDriver을"); CONN = DriverManager.getConnection를 ( "JDBC : SQLSERVER : // localhost를 : 1433, 데이터베이스 이름 = 책", "SA", "123456"); 문 스탯을 conn.createStatement () =; 문자열 SQL = "T_BOOK SELECT * FROM"; ResultSet의 RS = stat.executeQuery (SQL); 동안 (rs.next ()) { 새 책을 () = BOOK1 책; book1.setId는 (( "ID")를 rs.getString); book1.setName는 (( "이름") rs.getString); book1.setPrice는 (( "가격") rs.getString); books.add (BOOK1); } rs.close (); () stat.close; } 캐치 (예외 전자) { e.printStackTrace (); } 마지막으로 { 경우 (CONN = 널!) { conn.close (); CONN = NULL; } } 책을 반환; } }
도서类: 패키지 cn.edu.tzc.bean; 공용 클래스 책 { 개인 문자열 아이디; 개인 문자열 이름; 공공 문자열 getId () { 반환 아이디; } 공개 무효 setId (문자열 ID) { this.id = ID; } 공공 문자열 getName () { 반환 이름; } 공공 무효에서는 setName (문자열 이름) { this.name = 이름; } 공공 문자열 getPrice () { 반환 가격; } 공공 무효 setPrice (문자열 가격) { this.price = 가격; } 개인 문자열 가격; }
books.java (selvert)
서블릿 패키지; 수입 때 java.io.IOException; 가져 오기를 java.io.PrintWriter; 수입 java.io.Writer에; 수입 javax.servlet.ServletException; 수입 인 javax.servlet.http.HttpServlet; 수입 나오는 javax.servlet.http.HttpServletRequest; 수입의 javax.servlet.http.HttpServletResponse; 수입 java.sql.Connection의; 수입 java.sql.DriverManager의; 수입의 java.sql.ResultSet; 수입 java.sql.Statement의; 수입 javax.servlet.http.HttpSession; 공용 클래스 도서 연장 HttpServlet을 { 공개 무효 SQLFind (HttpServletRequest 요청, HttpServletResponse 응답) { HttpSession이 S = request.getSession (); response.setContentType ( "텍스트 / HTML; 문자셋 = UTF-8"); = null이 CONN 연결; 문 STAT = NULL; 문자열 이름은 request.getParameter ( "이름") =; 문자열 SQL = "T_BOOK SELECT * FROM WHERE 이름 LIKE '%'+ 이름 + '%';"; 시도 { 작가의 작가) response.getWriter를 (=; Class.forName을 ( "com.microsoft.sqlserver.jdbc.SQLServerDriver"); CONN = DriverManager.getConnection를 ( "JDBC : SQLSERVER : // localhost를 : 1433, 데이터베이스 이름 = 책", "SA", "123456"); STAT = conn.createStatement (); ResultSet의 RS = stat.executeQuery (SQL); INT F = 0; 반면 (rs.next ()) { F = 1; 문자열 S1 = rs.getString ( "ID"); 문자열 S2 = RS. ( "이름")에는 getString; 문자열 S3 = rs.getString ( "가격"); writer.write ( "<form 행동 = \"의 index.jsp \ ">" + "<input 타입 = \"숨겨진 \ 'NAME = \ "bookID로서 \"값 = \ ""+ S2 + "\"> " +" <입력 유형 = \ "숨겨진 \"이름 = \ "optionid \"값 = \ "- 1 \"> " +"ID : "+ S1 +"이름 : "+ S2 +"가격 : "+ S3 +"<입력 \) "> 값 = \"添加\ "> </ 양식 \"제출 "= 입력; } 경우 (F == 0) { writer.write ( "没有找到书本!"); } ) (stat.close; conn.close (); } 캐치 (예외 전자) { 에서 System.out.println (예) // 할 것: ServletException을, IOException가 {던졌습니다 작가 작가 = response.getWriter은 (); SQLFind (요청, 응답); writer.write ( "<form 행동 = \"의 index.jsp \ ">" + "<input 타입 = \"숨겨진 \ 'NAME = \ "bookID로서 \"값 = \ "\">로 <br> " +"< 입력 타입 = \ "숨겨진 \ 'NAME = \"optionid \ "값 = \"0 \ ">" + "<input 타입 = \"제출 \ "값 = \"显示购物车\ "> </ FORM>" ); } 공공 무효의 doPost는 (HttpServletRequest의 요청, HttpServletResponse를 대응) ServletException을 IOException을 발생는 { } }
Search.jsp :
<% @ 페이지 수입 = "인 java.util.ArrayList"%> <% @ 페이지 언어 = "자바"의 contentType = "text / html과; 문자셋 = UTF-8" pageEncoding = "UTF-8"%> <% @ 페이지 수입 = "cn.edu.tzc.bean.books"%> <% @ 페이지 수입 = "cn.edu.tzc.dao.BookDao"%> <% @ 페이지 수입 = "java.io.Writer에"%> < HTML> <body> <% BookDao DAO = 새로운 BookDao (); 책 = dao.queryAllBooks을 () ArrayList와; 대해 INT (I = 0; I <books.size (); I ++) { 서 BOOK2 = (서) books.get (I); session.setAttribute (book2.getName (), 0); } %> <양식 액션 = "책"> 请输入书名:로 <br> </ BODY> </ HTML>
index.jsp를 :
<% @ 페이지 수입 = "cn.edu.tzc.bean.books"%> <% @ 페이지 수입 = "cn.edu.tzc.dao.BookDao"%> <% @ 페이지 언어 = "자바"수입 = " java.util의 * "pageEncoding ="UTF-8 "%>. <DOCTYPE HTML PUBLIC!"- // W3C // DTD HTML 4.01 과도 // EN "> <HTML> <BODY> <% BookDao DAO = 새로운 BookDao ( ); 책 = dao.queryAllBooks을 () ArrayList와; 문자열 ID는 request.getParameter ( "optionid을") =; 경우 (id.equals ( "0")) { INT [A는 새로운 지능 = [1000]; 문자열 []은 bookname은 새로운 String [1000] =; 대해 INT (I = 0; I <books.size (); I ++) {서 BOOK2 = (서) books.get (I); bookname과 [I] = book2.getName (); } 이 [I] =있는 Integer.parseInt (session.getAttribute (bookname과 [I]) toString ().); } 경우 (나는 <books.size (); I ++ {INT 난 = 0) %> <= "index.jsp가"폼 작업> ID <% = 1 + 1 %>书名<% = bookname과 [I] %> <input 타입 = "숨겨진"이름 = 값 = "bookID로서" "<% = bookname과 [I] %>"> <input 타입 = "숨겨진"NAME = "optionid"값 = "1"> <input 타입 = >로 <br> "删除"값 = "제출" <% = A [i]를 %>本로 <br> :书本数量 </ FORM> <% } } {- 다른 경우 ( "1") id.equals () 문자열의 = request.getParameter ( "bookID로서"); B = INT있는 Integer.parseInt (session.getAttribute (들)로 .toString ()); session.setAttribute (S, B + 1); %> 添加成功! <% } {다른 문자열의 = request.getParameter ( "bookID로서"); System.out.print (S); C = INT있는 Integer.parseInt (session.getAttribute (S)) (로 .toString); 만약 (C-1> 0) session.setAttribute (S, C-1); 다른 session.setAttribute (S, 0); %> 删除成功! <form> <input 타입 = "숨겨진"이름 = 값 = ""> "bookID로서" 숨겨진 "NAME ="optionid <입력 = 타입」 「값 = "0"> <input 타입 = ""제출을 값 = '确认"> </ FORM> <% } %> </ BODY> </ HTML>