[Luận Văn] Xây dựng Website quảng cáo xe gắn máy bằng JAVA
1. Giới thiệu : Xây dựng Website quảng cáo xe gắn máy bằng JAVA gồm các chức năng sau : Quản lý khách hàng, quản lý nhân viên, quản lý xe máy, giá tiền xe, loại xe, khuyến mại, thống kê, báo cáo doanh thu ...
2. Ngôn ngữ : JAVA và MySQL
MỤC LỤC 1. Mục tiêu. 3 2. Lý do chọn đề tài. 4 3. Yêu cầu đề tài. 4 a. Chức năng. 4 b. Phân tích. 4 c. Quản trị. 4 d. Các trang web dự kiến. 5 4. Mô hình ERD. 5 5. Mô hình vật lý. 6 6. Mô hình quan hệ dữ liệu. 6 7. Bảng mô tả các thực thể và các mối kết hợp. 6 a. Thực thể XE. 6 b. Thực thể LOAIXE. 7 c. Thực thể CHITIETXE. 7 d. Thực thể PHUTUNG. 7 e. Thực thể KHACHHANG. 7 f. Các mối kết hợp. 8 8. Ràng buộc toàn vẹn. 8 9. Giao diện. 8 a. Trang chủ. 8 b. Trang đăng nhập. 9 c.Trang thông tin xe. 10 e. Trang cập nhật xe. 11 f. Trang cập nhật khách hàng. 11 g. Trang giá bán lẻ các sản phẩm. 11 h. Trang tìm kiếm 12 10. Giải thích các đoạn code. 12 a. Tạo lớp kết nối. 12 b. Trang xử lý đăng nhập. 15 c.Trang Hiện Dữ liệu. 16 d. Trang chi tiết xe. 19 e.Trang cập nhật xe. 22 f. Trang xử lý cập nhật xe. 32 j. Trang giá bán lẻ các sản phẩm. 35 k. Trang tìm kiêm xe. 36 ĐỒ ÁN JAVA- WEB Đề tài: QUẢNG CÁO XE GẮN MÁY 1. Mục tiêu. Khi hệ thống thi hành sẽ giúp việc truy cập, tìm kiếm, cập nhật về xe máy một cách nhanh chóng. Nhằm phục vụ cho khách hàng muốn tìm hiểu và mua xe. Vì mục đích của trang web này là quảng cáo các loại xe,cung cấp cho khách hàng những thông tin mà khách hàng muốn tìm. Nên chương trình này chỉ nhằm hỗ trợ cho các cửa hàng,đại lý trong việc mở rộng việc kinh doanh của công ty. 2. Lý do chọn đề tài. Ngày nay,công nghệ thông tin không ngừng phát triển, nó không chỉ mang tính chất thương mại. Nó giúp ích cho việc kinh doanh mua bán của các công ty, cửa hàng, đại lý. Nó góp phần mở rộng việc kinh doanh, mua bán của các công ty. Như chúng ta biết, ngày nay xe máy là một phương tiện đi lại nhanh chóng và hiệu quả mà bất cứ ai cũng cần. Vì vây, việc kinh doanh mua bán mặt hàng này đang được chú ý và quan tâm. Đó là lý do em chọn đề tài này. 3. Yêu cầu đề tài. a. Chức năng. -- Đưa thông tin cho khách hàng xem. -- Cập nhật thông tin xe. -- Cập nhật thông tin khách hàng. -- Giá bán lẻ các sản phẩm. -- Tìm kiếm thông tin cho người dùng. b. Phân tích. -- Yêu cầu về lưu trữ: Lưu trữ thông tin của từng loại xe. -- Yêu cầu về tra cứu: Tra cứu về loại xe. -- Yêu cầu về giao diện: Cho phép thau tác qua lại giữa các trang web. -- Yêu cầu về phân quyền: Do chương trình này dành cho các tổ chức kinh doanh mua bán nên đòi hỏi sự bảo mật cao. -- Yêu cầu về sao lưu dữ liệu: Nên sao lưu dữ liệu thường xuyên để đề phòng mất cơ sở dữ liệu. Để thuận lợi cho việc quản lý các loại xe. c. Quản trị. Người quản trị là người có toàn quyền kiểm soát ứng dụng củachương trình,có quyền kiếm soát mọi hoạt động của chương trình.Người quản trị có thể đăng nhập vào hệ thống và quản lý các dữ liệu (thêm, xóa ,sửa). Ngoài ra ngừơi quản trị có thể xem thông tin quảng cáo. Đối với khách hàng, muốn biết các thông tin sản phẩm thì có thể vào trang web để xem và chon lựa những loại xe mà mình thích, hợp sở thích của mình. -- Chức năng quản trị đối với khách hàng. + Nhập thông tin khách hàng. + Sửa thông tin khách hàng. + Xóa thông tin khách hàng. -- Chức năng quản trị đối với trang web. + Nhập thông tin xe. + Sửa thông tin xe. + Xóa thông tin xe. + Tìm kiếm theo loại xe. d. Các trang web dự kiến. -- Trang chủ. -- Trang thông tin xe. -- Trang cập nhật xe. -- Trang cập nhật khách hàng. -- Trang giá bán lẻ các sản phẩm. -- Trang tìm kiếm loại xe. 4. Mô hình ERD. 5. Mô hình vật lý. 6. Mô hình quan hệ dữ liệu. XE ( MaXe, TenXe, HinhAnh, MoTa ). CHITIETXE ( MaChiTiet, DungTich, HDSuDung, GiaCa, Mau ). PHUTUNG ( MaPhuTung, TenPhuTung, GiaCa, Mau, MoTa, HinhAnh ). LOAIXE ( MaLoaiXe, TenLoaiXe, GhiChu, DacDiem ). KHACHHANG ( MaKhachHang, TenKhachHang, DiaChi, DienThoai, Email ). 7. Bảng mô tả các thực thể và các mối kết hợp. a. Thực thể XE. STT Thuộc tính Kiểu dữ,liệu Ràng buộc Diễn giải 1 MAXE Varchar (20) Khóa chính Mã Xe 2 TENXE Varchar (20) Tên loại xe 3 HINHANH Varchar (50) Hình ảnh 4 MOTA Varchar (200) Mô tả 5 MALOAIXE Varchar (20) Khóa ngoại Mã loại xe b. Thực thể LOAIXE. STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải 1 MALOAIXE Varchar(20) Khoá chính Mã loại xe 2 TENLOAIXE Varchar(20) Tên loại xe 3 GHICHU Varchar(100) Ghi chú 4 DACDIEM Varchar(50) Đặc điểm c. Thực thể CHITIETXE. STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải 1 MACHITIET Varchar(20) Khóa chính Mã chi tiết 2 DUNGTICH Varchar(20) Dung tích 3 GIACA Float(20) Gía cả 4 HDSUDUNG Varchar(50) Hướng dẫn sử dụng 5 MAU Varchar(20) Màu 6 MAXE Varchar(20) Khóa ngoại Mã xe d. Thực thể PHUTUNG. STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải 1 MAPHUTUNG Varchar(20) Khóa chính Mã phụ tùng 2 TENPHUTUNG Varchar(40) Tên phụ tùng 3 GIACA Float(8) Giá cả 4 NGUYENLIEU Varchar(30) Nguyên liệu 5 MAU Varchar(20) Màu 6 MOTA Varchar(200) Mô tả 7 HINHANH Varchar(50) Hình ảnh 8 MAXE Varchar(20) Khóa ngoại Mã xe e. Thực thể KHACHHANG. Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải 1 MAKHACHHANG Varchar (20) Khóa chính Mã khách hàng 2 TENKHACHHANG Varchar (20) Tên khách hàng 3 DIACHI Varchar (20) Địa chỉ 4 DIENTHOAI Varchar (20) Điện thoại 5 EMAIL Varchar (20) Email 6 MAXE Varchar (20) Khóa ngoại Mã xe f. Các mối kết hợp. -- Mối quan hệ giữa XE và CHITIETXE. Mối kết hợp: có nhiều, tạo một quan hệ giữa xe và chi tiết xe là: quan hệ 1-n. Có nghĩa là một xe có nhiều chi tiết xe và ngược lại nhiều chi tiết xe thuộc một xe. -- Mối quan hệ giữa XE và PHUTUNG. Mối kết hợp: có nhiều, tạo một quan hệ giữa xe và phụ tùng là: quan hệ 1-n. Có nghĩa là một xe có nhiều phụ tùng và ngược lại nhiều phụ tùng của một xe. -- Mối quan hệ giữa LOAIXE và XE. Mối kết hợp: thuộc, tạo một quan hệ giữa loai xe và xe là: quan hệ 1- n. Có nghĩa là một loại xe có nhiều xe và ngược lại nhiều xe thuộc một loại xe. -- Mối quan hệ giữa XE và KHACHHANG. Mối kết hợp: đã mua, tạo một quan hệ giữa xe và khách hàng là: quan hệ 1-n. Có nghĩa là một xe được nhiều khách hàng và ngược lại nhiều khách hàng của một xe. 8. Ràng buộc toàn vẹn. RB1: Mỗi loại xe phải có một xe tương ứng. RB2: Mỗi khách hàng có một mã duy nhất và không trùng lắp. RB3: Mỗi xe phải có một tên duy nhất. RB4: Ngày nhập xe không thể nhỏ hơn ngày bán xe. RB5: Giá bán phải không âm. 9. Giao diện. a. Trang chủ. b. Trang đăng nhập. c.Trang thông tin xe. d. Trang chi tiết xe. e. Trang cập nhật xe. f. Trang cập nhật khách hàng. g. Trang giá bán lẻ các sản phẩm. h. Trang tìm kiếm 10. Giải thích các đoạn code. a. Tạo lớp kết nối. // Tạo ra lớp kết nối. package my; import com.borland.dx.sql.dataset.*; import java.util.*; // Hàm tạo ra lớp kết nối. public class KetNoi { public Database database1 = new Database(); public String trangThaiKetNoi = ""; //Statement thuc thi cau truy van // sau khi statement lay duoc bao nhieu mau tin thi no cat vao resultset public java.sql.Statement sta = null; public java.sql.ResultSet res = null; public Vector vIndex = null; public boolean flagSql = true; public KetNoi() { System.out.println("Dang ket noi csadl"); KetNoiDatabase(); } // Hàm ket noi cơ sở dữ liệu public void KetNoiDatabase() { try { jbInit(); } catch(Exception e) { System.out.println("Ket noi khong duoc"); e.printStackTrace(); } } private void jbInit() throws Exception { // khi ket noi chua duoc mo thi thuc hien ket noi lien. if(database1.isOpen() == false) database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:odbc:qlxm", "", "", false, "sun.jdbc.odbc.JdbcOdbcDriver")); trangThaiKetNoi = "Ket noi thanh cong"; // Tao ra doi tuong statement. sta = database1.createStatement(); } public void dongKetNoi() { if(database1.isOpen()) { database1.closeConnection(); System.out.println("Dong ket noi CSDL"); trangThaiKetNoi = "da dong ket noi"; } } // Hàm lấy dữ liều về gán vào một vector. public Vector getDataVector( int viTriTruongTable,String sql,String loi) { Vector v = new Vector(); System.out.println(sql); try { res = sta.executeQuery(sql); while(res != null && res.next()) { add mot object vao mot vector v.add(res.getString(viTriTruongTable)); } }catch(Exception l) { System.out.println(loi + " " + l.toString()); } return v; } // Hàm lấy về số mẫu tin. public int laySoMauTin (String sql, String loi) { int soMauTin = 0; try { res = sta.executeQuery(sql); while(res != null && res.next()) { soMauTin = soMauTin + 1; } }catch(Exception l) { System.out.println(loi + " " + l.toString()); } return soMauTin; } //hàm thực thi cau lệnh insert,delete, update la execute. Sau khi thuc thi xong co trang thai la true false public void thucThiSql(String sql, String loi) { try { sta.execute(sql); System.out.println(sql); flagSql = true; }catch(Exception l) { System.out.println(sql); flagSql = false; System.out.println(loi + " " + l.toString()); } } //Hàm lấy mẫu tin đầu tiên. public String layMauTinDauTien(String sql, String loi, int viTri) { String keQua = ""; try { res = sta.executeQuery(sql); //lay mot mau tin dau tien if(res != null && res.next()) { keQua = res.getString(viTri); } }catch(Exception l) { System.out.println(loi + " " + l.toString()); } return keQua; } } b. Trang xử lý đăng nhập. <% // khai bao chuoi us lay ve bien txtUser va pa lay ve bien txtPass. String us = request.getParameter("txtUser"); String pa = request.getParameter("txtPass"); // Tao doi tuong ket noi. my.KetNoi kn = new my.KetNoi (); // Tao vector đăng nhập để thực hiện câu truy vấn. Vector vDangNhap = kn.getDataVector(1,"select * from LoGin where username = '"+us+"' AND password ='"+pa+"'","loi khi lay du lieu"); kn.KetNoiDatabase(); // Kiểm tra đăng nhập nếu lớn hơn không thì gởi biến user,password lên session. // dieu kien xay ra tra ve mau tin cat vao vector if(vDangNhap.size() >0 ){ session.setAttribute("username",us); session.setAttribute("password",pa); response.sendRedirect("CapNhatLoaixe.jsp"); } Else // Nếu sai thì gọi lại trang đăng nhập. response.sendRedirect("DangNhap.jsp"); %> c.Trang Hiện Dữ liệu. <% // Tạo kết nối cơ sở dữ liệu. my.KetNoi kn = new my.KetNoi (); // Tạo biến cbo, lấy biến mã loại xe so sánh khác bằng null thì lấy về mã loại xe. String cboDangChon = ""; if(request.getParameter("bienMaLoaiXe") != null) cboDangChon = request.getParameter("bienMaLoaiXe"); kn.KetNoiDatabase(); //Khai báo Vector đe hứng các giá trị. Vector vMaLoaiXe=new Vector(); Vector vMaLoaiXeDefault = new Vector(); Vector vTenLoaiXe = new Vector(); Vector vHinh=new Vector(); Vector vXe = new Vector(); Vector vMaXe = new Vector(); // Thực hiên câu truy vấn vMaLoaiXeDefault = kn.getDataVector(1,"select top 1 MaLoaiXe from LoaiXe ","loiLoaiXe"); vMaLoaiXe = kn.getDataVector(1,"select MaLoaiXe from LoaiXe order by MaLoaiXe asc","loiLoaiXe"); vTenLoaiXe = kn.getDataVector(1,"select TenLoaiXe from LoaiXe order by MaLoaiXe asc","loiLoaiXe"); vHinh = kn.getDataVector(1,"select HinhAnh from Xe ","Loi xe"); //out.println(vHinh); String giaTriCbo = ""; // Lấy về dữ liệu đầu tiên. String duLieuDau = kn.layMauTinDauTien("select MaLoaiXe from LoaiXe","Loi lay mau tin dau tien",1); if(request.getParameter("bienMaLoaiXe") != null) { giaTriCbo = request.getParameter("bienMaLoaiXe"); vXe = kn.getDataVector(1,"select TenXe from Xe where MaLoaiXe = N'"+giaTriCbo+"'","Loi xe"); vMaXe = kn.getDataVector(1,"select maXe from Xe where MaLoaiXe = N'"+giaTriCbo+"'","loiLoaiXe"); vHinh = kn.getDataVector(1,"select HinhAnh from Xe where MaLoaiXe = N'"+giaTriCbo+"'","Loi xe...."); } else { vXe = kn.getDataVector(1,"select TenXe from Xe where MaLoaiXe = N'"+duLieuDau+"'","Loi xe"); vMaXe = kn.getDataVector(1,"select MaXe from Xe where MaLoaiXe = N'"+duLieuDau+"'","loiLoaiXe"); vHinh = kn.getDataVector(1,"select HinhAnh from Xe where MaLoaiXe = N'"+vMaLoaiXeDefault.elementAt(0)+"'","Loi xe"); } %> <html> <body> <form name ="myForm" > Chon loai xe: <select name="cbo" onchange="xuLy()" width="100"> <% int i = 0 ; String tenCbo = request.getParameter("cbo"); System.out.println("vMaLoaiXe = " + vMaLoaiXe); while(i < vMaLoaiXe.size()) { if(vMaLoaiXe.elementAt(i).equals(giaTriCbo)) {%> <option value="<%=vMaLoaiXe.elementAt(i)%>" selected="selected"><%=vTenLoaiXe.elementAt(i)%></option> <% } else { %> <option value="<%=vMaLoaiXe.elementAt(i)%>"> <%=vTenLoaiXe.elementAt(i)%></option> <% } i++; }%> </select> <table border="1" width="50%" bgcolor="FFFFF0"> <tr > <td> Tên xe </td> </tr> <% int j = 0 ; while (j < vXe.size()) { String bienHinh = "Images/"+vHinh.elementAt(j); %> <tr > <td > <a href="ChiTiet.jsp?maXe=<%=vMaXe.elementAt(j)%>&path=<%=bienHinh%>"> <img alt="" src="<%=bienHinh%>"><%=vXe.elementAt(j)%></a> </td> <%--<td>--%> <%--</td--%> </tr> <%j++;}%> </table> </form> </body> <script type="javaScript"> function xuLy() { myForm.action = "XuLyHienDuLieu.jsp"; myForm.submit(); } </script> </html> d. Trang chi tiết xe. //tao ket noi my.KetNoi gc=new my.KetNoi (); //tao cac vector Vector vTenXe=new Vector(); Vector vGiaCa=new Vector(); Vector vMau=new Vector(); Vector vMoTa=new Vector(); Vector vmapt=new Vector(); String maXeLayTuTrangXe=""; maXeLayTuTrangXe=request.getParameter("maXe"); // lay thong tin chi tiet xe vTenXe=gc.getDataVector(1,"select TenXe from ChiTietXe,Xe where ChiTietXe.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung1"); vGiaCa = gc.getDataVector(1,"select GiaCa from Xe,ChiTietXe where Xe.maxe=ChiTietXe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"' ","loi phutung2"); vMau=gc.getDataVector(1,"select Mau from Xe,ChiTietXe where Xe. maxe=ChiTietXe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung3"); vMoTa=gc.getDataVector(1,"select MoTa from chitietXe,Xe where chitietXe.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung4"); // lay thong tin phu tung xe Vector vTenPhuTung=new Vector(); Vector vGiaPhuTung=new Vector(); Vector vMauPhuTung=new Vector(); Vector vMoTaPhuTung=new Vector(); Vector vHinhAnhPhuTung=new Vector(); // Thực hiện câu truy vấn. vTenPhuTung=gc.getDataVector(1,"select TenPhuTung from PhuTung,Xe where PhuTung.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung1"); vGiaPhuTung = gc.getDataVector(1,"select Giaca from PhuTung,Xe where PhuTung.maxe=Xe.maxe and Xe.maxe='"+maXeLayTuTrangXe+ "'","loi phutung2"); vMauPhuTung=gc.getDataVector(1,"select Mau from PhuTung,Xe where PhuTung. maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung3"); vMoTaPhuTung=gc.getDataVector(1,"select PhuTung.Mota from PhuTung,Xe where PhuTung.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung4"); vHinhAnhPhuTung=gc.getDataVector(1,"select PhuTung.Hinhanh from PhuTung,Xe where PhuTung.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung5"); %> <html> <head> <title> phu tùng </title> </head> <body bgcolor="#ffffff"> <h1> <font face="Arial" color="FF0000">CHI TIẾT XE</font> </font> </h1> <form method="post"> <br><br> <table height=49 cellSpacing=5 cellPadding=5 width=294 bgcolor="FFFFF0"> <tr> <td><img alt="" src="<%=request.getParameter("path")%>"> </td> <TD> </TD> <TD width=456 height=250> <TABLE cellSpacing=0 cellPadding=0 width=456 border=0> <TBODY> <TR vAlign=top> <TD style="PADDING-TOP: 5px" width=50><font face="Arial" color="blue"> Tên Xe </font><input type="text" readonly="readonly" name="txtPT" value="<%=vTenXe.elementAt(0)%>"> </td> </tr> <TR vAlign=top> <TD style="PADDING-TOP: 5px" width=50><font face="Arial" color="blue"> Giá : </font><input type="text" readonly="readonly" name="txtG" value="<%=vGiaCa.elementAt(0)%>"> </td> </tr> <TR vAlign=top> <TD style="PADDING-TOP: 5px" width=50><font face="Arial" color="blue"> Màu: </font><input type="text" readonly="readonly" name="txtM"value="<%=vMau.elementAt(0)%>"> </td> </tr> <TR vAlign=top> <TD style="PADDING-TOP: 5px" width=50><font face="Arial" color="blue"> Mô Tả: </font><input type="text" readonly="readonly" name="txtMT"value="<%=vMoTa.elementAt(0)%>"> </td> </tr> </tbody> </table> <table border=""1"> <tr><td>Tên Phụ Tùng</td> <td>Gía</td> <td>Màu</td> <td>Mô Tả</td> <td>Hình Ảnh</td> </tr> <% int dem = 0 ; while(dem < vMoTaPhuTung.size()) { %> <tr><td><%=vTenPhuTung.elementAt(dem)%></td> <td><%=vGiaPhuTung.elementAt(dem)%></td> <td><%=vMauPhuTung.elementAt(dem)%></td> <td><%=vMoTaPhuTung.elementAt(dem)%></td><td> <% String chuoiHinh = "Images/" + vHinhAnhPhuTung.elementAt(dem); %> <img src = <%=chuoiHinh%> width = 50 height = 80></td> </tr> <%dem++;} %> </table> </table> </table> </form> </body> </html> e.Trang cập nhật xe. <% //khai bao cac vector int soMauTin = 0 ; Vector vMaXe = new Vector(); Vector vTenXe = new Vector(); Vector vMoTa = new Vector(); String maXe = ""; String tenXe = ""; String moTa = ""; //lay ve bien sql if(request.getParameter("bienSql") != null) if(request.getParameter("bienSql").equals("kptv")) { out.println("Bankhong phai la thanh vien cap nhat "); } else { out.println("TRANG THAI CAP NHAT: "); if(request.getParameter("bienSql").equals("THANH CONG")) out.println("THAt BAI"); else out.println("THANH CONG......"); } if(request.getParameter("maXe") != null) { maXe = request.getParameter("maXe"); tenXe = request.getParameter("tenXe"); moTa = request.getParameter("moTa"); } my.KetNoi kn = new my.KetNoi (); soMauTin = kn.laySoMauTin("select maXe from Xe","Loi Khi Lay So Mau Tin Xe") ; if(kn.getDataVector(1,"select maXe from Xe ","Loi khi lay thong tin max").size() > 0) { vMaXe = kn.getDataVector(1,"select maXe from Xe ","Loi khi lay thong tin max"); vTenXe = kn.getDataVector(1,"select TenXe from Xe ","Loi khi lay thong tin tenxe"); vMoTa = kn.getDataVector(1,"select MoTa from Xe ","Loi khi lay thong tin mota xe"); } %> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="myForm" action = "XuLyCapNhatLoaiXe.jsp" onsubmit="return luu()"> <table width="800" border="0" cellpadding="0" cellspacing="0" bgcolor="FFFFF0"> <!--DWLayoutTable--> <tr> <td height="63" colspan="2" valign="top"><div align="center"> <p><font size="7">CẬP NHẬT XE</font> </p> <%--<p><a href="TrangChu.jsp">Quay lai trang chu</a></p>--%> </div></td> </tr> <tr> <td width="293" height="24" valign="top"><div align="right"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="293" height="24" valign="top"><div align="right">Ma xe: </div></td> </tr> </table> </div></td> <td width="507" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="507" height="24" valign="top"> <% if(request.getParameter("viTriVector") != null) { int chuoiIndexVector = new Integer(request.getParameter("viTriVector")).intValue(); %> <input type="text" name="txtMaXe" value=<%=vMaXe.elementAt(chuoiIndexVector)%>> <%} else if(vMaXe.size() > 0) {%> <input type="text" name="txtMaXe" alue="<%=vMaXe.elementAt(0).toString()%>"> <%} else {%> <input type="text" name="txtMaXe" value="chua co du lieu"> <%}%> </td> </tr> </table></td> </tr> <tr> // Tạo textbox tên xe <td height="23" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="293" height="23" valign="top"><div align="right">Ten xe:</div></td> </tr> </table></td> <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="507" height="23" valign="top"> <% if(request.getParameter("viTriVector") != null) { int chuoiIndexVector = new Integer(request.getParameter("viTriVector")).intValue(); %> <input type="text" name="txtTenXe" value=<%= vTenXe.elementAt(chuoiIndexVector)%>> <%} else if(vMaXe.size() > 0) {%> <input type="text" name="txtTenXe" v alue="<%=vTenXe.elementAt(0).toString()%>"> <%} else {%> <input type="text" name="txtTenXe" value="chua co du lieu"> <%}%> </td> </tr> </table></td> </tr> <tr> // Tạo Textbox Mô tả. <td height="23" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="293" height="23" valign="top"><div align="right">Mo Ta:</div></td> </tr> </table></td> <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="507" height="23" valign="top"> <% if(request.getParameter("viTriVector") != null) { int chuoiIndexVector = new Integer(request.getParameter("viTriVector")).intValue(); %> <input type="text" name="txtMoTa" value=<%=vMoTa.elementAt(chuoiIndexVector)%>> <%} else if(vMaXe.size() > 0) {%> <input type="text" name="txtMoTa" value="<%=vMoTa.elementAt(0).toString()%>"> <%} else {%> <input type="text" name="txtMoTa" value="chua co du lieu"> <%}%> </td> </tr> </table></td> </tr> <tr> <td height="24" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="141" height="24" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="11" height="24"> </td> <td width="130" valign="top"> <div align="center"> <input type="button" name="bttThem" value=" Them " size="50" onclick="them()"> </div> </td> </tr> </table></td> <td width="148" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> // Tạo nút xóa va bắ t sự kiện onclick. <!--DWLayoutTable--> <tr> <td width="10" height="24"> </td> <td width="138" valign="top"> <div align="center"> <input type="button" name="bttXoa" value=" Xoa " onclick="xoa()"> </div> </td> </tr> </table></td> <td width="153" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> // Tạo nút sửa và bắ t sự kiện onclick. <!--DWLayoutTable--> <tr> <td width="19" height="24"> </td> <td width="134" valign="top"> <div align="center"> <input type="button" name="bttSua" value=" Sua " onclick="sua()"> </div> </td> </tr> </table></td> <td width="150" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> // Khi nhấn nut lưu. <!--DWLayoutTable--> <tr> <td width="14" height="24"> </td> <td width="136" valign="top"> <div align="center"> <input type="submit" name="bttLuu" value=" Luu " id="luu" > </div> </td> </tr> </table></td> <td width="150" valign="top"><table width="100%" border="0" c ellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="16" height="24"> </td> <td width="134" valign="top"> <div align="center"> <input type="button" name="bttHuy" value=" huy thao tac " onclick="huyThaoTac()"> </div> </td> </tr> </table></td> <td width="58"> </td> </tr> </table></td> </tr> <tr> <td height="23"> </td> <td> </td> </tr> <tr> <td height="468" colspan="2" valign="top"><table width="100%" border="1"> <tr bgcolor="#CCCCCC"> <td ><input type="checkbox" name="chkAll" onclick="xoaTatCa(<%=soMauTin%>)">Chon Xoa</td> <td> Chon sua</td> <td >Ma loai xe</td> <td >Ten loai xe</td> <td >Mo Ta</td> </tr> <% // Thể hiện các giá trị lên đe xóa. int i = 0; while(i < soMauTin && soMauTin > 0) { if(request.getParameter("viTriVector") != null && new Integer(request.getParameter("viTriVector")).intValue() == i) {%> <tr bgcolor = "#0000FF"> <td id ="col1" width="10%" align="justify" ><input type = "checkbox" name="chk" value = <%=vMaXe.elementAt(i)%>/></td> <td width="10%" > <input type="radio" name="radio" value="<%=i%> " checked></td> <td width="10%" align="justify" > <%= vMaXe.elementAt(i)%> </td> <td width="10%" align="justify" > <%= vTenXe.elementAt(i) %></td> <td width="30%" align="justify" > <%= vMoTa.elementAt(i) %></td> </tr> <%} else {%> <tr > <td id ="col1" width="10%" align="justify" ><input type = "checkbox" name="chk" value = <%=vMaXe.elementAt(i)%>/></td> <td width="10%" > <input type="radio" name="radio" value="<%=i%> " onclick="rdioSua()"></td> <td width="10%" align="justify" > <%= vMaXe.elementAt(i)%> </td> <td width="10%" align="justify" > <%= vTenXe.elementAt(i) %></td> <td width="30%" align="justify" > <%= vMoTa.elementAt(i) %></td> </tr> <%}%> <% i++; } kn.dongKetNoi(); %> </table></td> </tr> </table> // Hàm xử lý java script. <script type="javaScript"> function huyThaoTac() { myForm.bttLuu.id = "luu"; } // xu ly javascript khi nhan nut luu function luu() { if(myForm.bttLuu.id.equals("them")) { if(myForm.txtMaXe.value.equals("")) { alert("Ban chua nhap ma xe"); myForm.txtMaXe.focus(); return false; } if(myForm.txtTenXe.value.equals("")) { alert("Ban chua nhap ten xe"); myForm.txtTenXe.focus(); return false; } if(myForm.txtMoTa.value.equals("")) { alert("Ban chua nhap mo ta"); myForm.txtMoTa.focus(); return false; } return true; } // xử lý khi nhấn nút xóa. if(myForm.bttLuu.id.equals("xoa")) { flagDem = 0; for(i = 0 ; i < <%=soMauTin%>; i++) { if(myForm.chk[i].checked == true) { flagDem = flagDem + 1; } } if(flagDem == <%=soMauTin%> || flagDem > 0) { return true; } else { alert("Ban chua chon gia tri can xoa"); return false; } } //Xử lý khi nhấn nut lưu if(myForm.bttLuu.id.equals("luu")) { alert("ban chua nhan thao tac nao nen nut luu khong co hieu luc"); return false; } } function them() { myForm.bttLuu.id = "them"; myForm.bttLuu.value = " Luu(them) "; myForm.txtMaXe.value = ""; myForm.txtMaXe.focus(); myForm.txtTenXe.value = ""; myForm.txtMoTa.value = ""; } function xoa() { myForm.bttLuu.id = "xoa"; myForm.bttLuu.value = " Luu(xoa) "; } function sua() { myForm.bttLuu.id = "sua"; myForm.bttLuu.value = " Luu(sua) "; } // chon tat ca check box để xóa function xoaTatCa(so) { if(myForm.chkAll.checked == false) for(i = 0; i < so; i++) { myForm.chk[i].checked = true; } else for(i = 0; i < so; i++) { myForm.chk[i].checked = false; } } // Hàm chọn radio để sửa function rdioSua() { myForm.action = "XuLyCapNhatLoaiXe.jsp"; myForm.submit(); } // Hàm hủy thao tác function huyThaoTac() { myForm.action = "CapNhatLoaixe.jsp"; myForm.reset(); } </script> </form> </body> </htm> f. Trang xử lý cập nhật xe. <% // Xử lý khi nhấn radio. if(request.getParameter("bttLuu") == null) { String chuoiIndex = request.getParameter("radio"); response.sendRedirect("CapNhatLoaixe.jsp?viTriVector="+chuoiIndex+""); } // Hàm thực hiện thêm vào cơ sở dứ liệu if(request.getParameter("bttLuu") != null ) { my.KetNoi kn=new my.KetNoi (); String maXe = ""; String tenXe = ""; String moTa = ""; if(request.getParameter("txtMaXe") != null) maXe = request.getParameter("txtMaXe"); if(request.getParameter("txtTenXe") != null) tenXe = request.getParameter("txtTenXe"); if(request.getParameter("txtMoTa") != null) moTa = request.getParameter("txtMoTa"); if(request.getParameter("bttLuu").equals(" Luu(them) ")) { if(session.getAttribute("username") != null&&session.getAttribute("password")!=null) { kn.thucThiSql("insert into Xe (maXe,tenXe,moTa) values(N'"+maXe+"',N'"+tenXe+"',N'"+moTa+"')","Loi khi thuc thi sql them xe"); kn.dongKetNoi(); if(kn.flagSql) response.sendRedirect("CapNhatLoaixe.jsp?bienSql=thanhCong"); else response.sendRedirect("CapNhatLoaixe.jsp?bienSql=thatBai"); } else { response.sendRedirect("CapNhatLoaixe.jsp?bienSql=kptv"); } } //TRUONG HOP SUA if(request.getParameter("bttLuu").equals(" Luu(xoa) ")) { if(session.getAttribute("username") != null&&session.getAttribute("password")!=null) { String[] arrayDelete = request.getParameterValues("chk"); for(int i = 0 ; i < arrayDelete.length ; i++) { kn.thucThiSql("delete xe where maxe = N'"+arrayDelete[i]+"'","Loi khi xoa mau tin"); kn.dongKetNoi(); } if(kn.flagSql) response.sendRedirect("CapNhatLoaixe.jsp?bienSql=thanhCong"); else response.sendRedirect("CapNhatLoaixe.jsp?bienSql=thatBai"); } else { response.sendRedirect("CapNhatLoaixe.jsp?bienSql=kptv"); } } // TRUONG HOP LUU if(request.getParameter("bttLuu").equals(" Luu(sua) ")) { if(session.getAttribute("username") != null&&session.getAttribute("password")!=null) { String[] arrayUpdate = request.getParameterValues("radio"); String maXeSua = request.getParameter("txtMaXe"); String tenXeSua = request.getParameter("txtTenXe"); String moTaSua = request.getParameter("txtMoTa"); // for(int i = 0 ; i < arrayUpdate.length ; i++) { kn.thucThiSql("update xe " + " set maXe = N'"+maXeSua+"', tenXe = N'"+tenXeSua+"', moTa = N'"+moTaSua+"' " + " where maxe = N'"+maXe+"'","Loi khi delete mau tin"); } kn.dongKetNoi(); if(kn.flagSql) response.sendRedirect("CapNhatLoaixe.jsp?bienSql=thanhCong"); else response.sendRedirect("CapNhatLoaixe.jsp?bienSql=thatBai"); } else { response.sendRedirect("CapNhatLoaixe.jsp?bienSql=kptv"); } } } %> j. Trang giá bán lẻ các sản phẩm. <% //Tạo lớp kết nối. my.KetNoi kn=new my.KetNoi (); //Thục hiện câu truy vấn. Vector vTenXe= kn.getDataVector(1,"select tenxe from xe,chitietxe where chitietxe.maxe=xe.maxe ","loi xe") ; Vector vGiaCa=kn.getDataVector(1,"select giaca from chitietxe,xe where chitietxe.maxe=xe.maxe","loi chi tiet xe"); %> <% // Tạo vòng lặp,thể hiện giá trị lên bảng int dem = 0; while(dem < vTenXe.size()) { %> <tr><td><font face="tahoma" color="black"> <%= vTenXe.elementAt(dem)%></font></td> <td><font face="tahoma" color="black"> <%= vGiaCa.elementAt(dem)%></font></td> <% dem++; } %> k. Trang tìm kiêm xe. <%@ page contentType="text/html; charset=UTF-8" %> <%@ page import = "java.util.*"%> <%! Vector vMaXe = new Vector(); Vector vTenXe = new Vector(); %> <% int loaiTimKiem =0 ; String tim = null; loaiTimKiem = // Doi chuoi thanh so nguyen.1 Integer.parseInt(request.getParameter("radTimKiem")); tim = request.getParameter("txtTim"); if(loaiTimKiem == 1)//Tim theo ten { my.KetNoi kn=new my.KetNoi (); vMaXe = kn.getDataVector(1,"select MaXe from Xe where tenXe like N'%"+tim+"%'", "loi xe"); vTenXe = kn.getDataVector(1,"select TenXe from Xe where tenXe like N'%"+tim+"%'", "loi chi tiet"); } if(loaiTimKiem == 2)//Tim theo ma { my.KetNoi kn = new my.KetNoi(); vMaXe = kn.getDataVector(1,"select tenxe from xe where maxe=N'"+tim+"'", "loi xe"); vTenXe = kn.getDataVector(1,"select Tenxe from xe where maxe=N'"+tim+"'", "loi chitiet"); } %> <html> <head> </head> <body bgcolor="#ffffff"><br> <h1><font face="Times New Roman, Times, serif"color="#FF0000"> Hiển thị thông tin tìm kiếm</font></h1> <form method="post"> <br> <table border="1"> <tr> <td>Mã xe</td> <td>Ten xe</td> </tr> <% if(vMaXe.size() > 0) { int dem=0; while(dem <vMaXe.size()) {%> <tr><td><font face="Times new Roman" color="blue"> <%=vMaXe.elementAt(dem)%></font></td> <td><font face="Times new roman" color="blue"> <%=vTenXe.elementAt(dem)%></font></td> <%dem++; } } else out.println("<h1><b>tìm kiếm không có</b></h1>");%> </tr> </table> </form> </body> </html>
Download mã nguồn
Thời gian: 2014-08-24T13:23:00-07:00
Bài viết:[Luận Văn] Xây dựng Website quảng cáo xe gắn máy bằng JAVA
Rating:
Thời gian: 2014-08-24T13:23:00-07:00
Bài viết:[Luận Văn] Xây dựng Website quảng cáo xe gắn máy bằng JAVA
Rating:
No comments:
Post a Comment