1. Trang chủ
  2. » Công Nghệ Thông Tin

BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH MẠNG

52 830 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 5,67 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN &&& - BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH MẠNG Đà Nẵng, Tháng 05 năm 2017 LỜI MỞ ĐẦU Lập trình mạng kiến thức chuyên ngành quan trọng lĩnh vực công nghệ thông tin, đặc biệt ngành quản trị mạng Có thể xem hướng rộng mở cho sinh viên việc nắm bắt kĩ thuật cần thiết quan trọng Sau loạt môn học lí thuyết tảng Mạng GVHD: ThS Mai Văn Hà máy tính, Lập trình Java, Lập trình mạng, học phần Lập trình mạng hội tụ thực kiến thức học sách Nội dung thực hành chủ yếu thực việc lập trình Socket họ giao thức TCP/IP giao thức UDP ứng dụng viết ngôn ngữ Java, kết hợp kĩ thuật lập trình đa luồng, lập trình web JSP để thực hạng mục học phần Thông qua các giảng lớp, sinh viên dần thông thạo với công việc lập trình phần làm quen kĩ thuật xây dựng hệ thống làm việc cho hiệu Dù kiểm tra nhiều lần báo cáo xuất số lỗi sai sót, em mong đợi góp ý từ thầy cô Em xin chân thành cảm ơn Trang GVHD: ThS Mai Văn Hà Ý KIẾN ĐÁNH GIÁ CỦA GIẢNG VIÊN ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… Trang GVHD: ThS Mai Văn Hà MỤC LỤC Bài tập 1: Xây dựng chức đăng nhập đăng ký tài khoản JSP, Servlet theo mô hình MVC Yêu cầu đề bài: Xây dựng ứng dụng JSP, SERVLET theo mô hình MVC cung cấp chức sau: - Người dùng muốn truy cập vào hệ thống phải thực login để kiểm tra username password có hợp lệ hay không - Hệ thống thông qua DB kiểm tra tính xác thực liệu: + Nếu username password không xác hay không tồn ứng dụng thông báo cho người dùng thông tin “Invalid username and password” cho người dùng trở trang Login thông qua Link có tên Try Again cung cấp Link Register cho phép người dùng đăng ký account + Nếu user tồn chương trình bày form Search Đặc biệt, đầu trang phải sử dụng session để lưu trữ user tất trang phải có câu “Welcome, tênUser” - Form Search cho phép người dùng tìm kiếm user biết phần tên họ + Kết Search trình bày lưới liệu + Nếu tìm không thấy in câu “No Result is matched!” - Kết lưới liệu cho phép người dùng xóa hàng cách click vào link hay update thông tin lastname hay roles click nút update hàng lựa chọn - Khi thao tác update, delete thực thành công lưới liệu cập nhật lại trình bày kết cho người dùng Trang GVHD: ThS Mai Văn Hà Cấu trúc thư mục: BaseDAO.java package model.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class BaseDAO { private Connection connect; public Connection getConnectMySql() { String hostName = "localhost"; String dbName = "exercise_web"; String userName = "root"; String password = ""; try { Class.forName("com.mysql.jdbc.Driver"); Trang GVHD: ThS Mai Văn Hà String connURL = "jdbc:mysql://" + hostName + ":3306/" + dbName + "?useUnicode=true&characterEncoding=UTF-8"; connect = DriverManager.getConnection(connURL, userName, password); // System.out.println("Connected"); } catch (ClassNotFoundException e) { System.out.println("Class not found!"); } catch (SQLException e) { System.out.println("Error connect!"); } return connect; } } UserDAO.java package model.dao; import import import import import import java.sql.Connection; java.sql.Date; java.sql.PreparedStatement; java.sql.ResultSet; java.sql.SQLException; java.util.ArrayList; import model.bean.User; public class UserDAO extends BaseDAO { private ResultSet results; private Connection conn; private PreparedStatement pst; public boolean addUser(User userInfor) { boolean status = false; Connection conn = this.getConnectMySql(); String sql = "INSERT INTO user (username,password,fullname) VALUES(?,?,?)"; try { pst = conn.prepareStatement(sql); pst.setString(1, userInfor.getUsername()); pst.setString(2, userInfor.getPassword()); pst.setString(3, userInfor.getFullname()); } = ?"; int temp = pst.executeUpdate(); status = (temp == 1) ? true : false; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return status; public boolean isExistUser(String userName, String password) { boolean status = false; Connection conn = this.getConnectMySql(); try { String sql = "select * from user where username = ? and password pst = conn.prepareStatement(sql); pst.setString(1, userName); Trang GVHD: ThS Mai Văn Hà pst.setString(2, password); results = pst.executeQuery(); status = results.next(); } catch (SQLException e) { System.out.println(e.getMessage()); } finally { try { pst.close(); } catch (Exception e2) { // TODO: handle exception } } return status; } public User getUser(String userName) { Connection conn = this.getConnectMySql(); User user = null; try { String sql = "select * from user where username = ?"; pst = conn.prepareStatement(sql); pst.setString(1, userName); results = pst.executeQuery(); while (results.next()) { String username = results.getString(1); String password = results.getString(2); String fullname = results.getString(3); user = new User(username, password, fullname); } } catch (SQLException e) { System.out.println(e.getMessage()); } finally { try { pst.close(); } catch (Exception e2) { // TODO: handle exception } } return user; } public ArrayList getUserByName(String name) { Connection conn = this.getConnectMySql(); ArrayList listUser = new ArrayList (); try { String sql = "select * from user where fullname like '%"+name+"%'"; pst = conn.prepareStatement(sql); results = pst.executeQuery(); while (results.next()) { String username = results.getString(1); String password = results.getString(2); String fullname = results.getString(3); User obj = new User(username, password, fullname); listUser.add(obj); } Trang GVHD: ThS Mai Văn Hà } catch (SQLException e) { System.out.println(e.getMessage()); } finally { try { pst.close(); } catch (Exception e2) { // TODO: handle exception } } return listUser; } public boolean deleteUser(String userName) { boolean status = false; Connection conn = this.getConnectMySql(); try { String sql = "DELETE FROM user WHERE username = ?"; pst = conn.prepareStatement(sql); pst.setString(1, userName); int temp = pst.executeUpdate(); status = (temp == 1) ? true : false; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { pst.close(); } catch (Exception e2) { // TODO: handle exception } } return status; } public boolean editUser(User user) { boolean status = false; Connection conn = this.getConnectMySql(); try { String sql = "UPDATE user SET password = ?, fullname = ? WHERE username = ?"; pst = conn.prepareStatement(sql); pst.setString(1, user.getPassword()); pst.setString(2, user.getFullname()); pst.setString(3, user.getUsername()); int temp = pst.executeUpdate(); status = (temp == 1) ? true : false; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { pst.close(); } catch (Exception e2) { // TODO: handle exception } } return status; } public static void main(String[] args) { Trang GVHD: ThS Mai Văn Hà UserDAO u = new UserDAO(); Lon"))); } } System.out.println(u.editUser(new User("thailoi","222222","Thai Van HomeController.java package controller; import java.io.IOException; import java.util.ArrayList; import import import import import import import javax.servlet.RequestDispatcher; javax.servlet.ServletException; javax.servlet.annotation.WebServlet; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; javax.servlet.http.HttpSession; import model.bean.User; import model.dao.UserDAO; /** * Servlet implementation class HomeServlet */ @WebServlet("/HomeServlet") public class HomeController extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HomeController() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub HttpSession session = request.getSession(); if(session.getAttribute("fullname") != null){ UserDAO userDAO = new UserDAO(); String name = request.getParameter("name"); String search = request.getParameter("search"); String logout = request.getParameter("logout"); if(logout != null){ session.invalidate(); response.sendRedirect(request.getContextPath() + "/login.html"); return; // < - Here }else{ if( search != null && name != null){ Trang GVHD: ThS Mai Văn Hà ArrayList listUser = userDAO.getUserByName(name); request.setAttribute("listUser", listUser); } } RequestDispatcher rd = request.getRequestDispatcher("/view/home.jsp"); rd.forward(request, response); }else{ response.sendRedirect(request.getContextPath() + "/login.html"); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } } Index.jsp LoginController.java package controller; import java.io.IOException; import java.io.PrintWriter; import import import import import import import javax.servlet.RequestDispatcher; javax.servlet.ServletException; javax.servlet.annotation.WebServlet; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; javax.servlet.http.HttpSession; import model.bean.User; import model.dao.UserDAO; Trang 10 GVHD: ThS Mai Văn Hà request.setAttribute("warning", 1); RequestDispatcher rd = request.getRequestDispatcher("/view/vacxin/add.jsp"); rd.forward(request, response); return; } String mota = request.getParameter("Mota"); String tenVacXin = request.getParameter("TenVacXin"); String tenHang = request.getParameter("TenHang"); if(tenVacXin.equals("")&&mota.equals("")&&tenHang.equals("")){ request.setAttribute("warning", 1); RequestDispatcher rd = request.getRequestDispatcher("/view/vacxin/add.jsp"); rd.forward(request, response); }else{ vacxin = new VacXin(1, tenVacXin, soMui, mota, giaVacXin, tenHang); boolean status = vacXinDAO.addVacXin(vacxin); if(status == true){ request.setAttribute("success", 1); RequestDispatcher rd = request.getRequestDispatcher("/view/vacxin/add.jsp"); rd.forward(request, response); }else{ request.setAttribute("warning", 1); RequestDispatcher rd = request.getRequestDispatcher("/view/vacxin/add.jsp"); rd.forward(request, response); } } } public static boolean isInt(String str) { int temp; try { temp = Integer.parseInt(str); if(temp > 0){ return true; }else{ return false; } } catch (NumberFormatException nfe) { } return false; } } Vacxin/add.jsp Thêm Vacxin Trang 38 GVHD: ThS Mai Văn Hà Tên Vacxin: Số mũi: Mô tả: Giá VacXin: Tên hãng: Thêm VacXin Danh sách VacXin

Thêm VacXin thất bại, bạn kiểm tra lại thông tin VacXin trước thêm

Thêm VacXin thành công

LichSuTiemPhongDAO.java package model.dao; import import import import import import import import java.sql.Connection; java.sql.PreparedStatement; java.sql.ResultSet; java.sql.SQLException; java.sql.Statement; java.util.ArrayList; java.util.logging.Level; java.util.logging.Logger; import import import import model.bean.KhachHang; model.bean.LichSuTiemPhong; model.bean.TongChiPhi; model.bean.VacXin; public class LichSuTiemPhongDAO extends BaseDAO { private Connection conn; private Statement st; private PreparedStatement pst; private ResultSet rs; private KhachHangDAO khachHangDAO; private VacXinDAO vacxinDAO; public LichSuTiemPhongDAO() { khachHangDAO =new KhachHangDAO(); vacxinDAO = new VacXinDAO(); } public ArrayList getList() { ArrayList AlLSTP = new ArrayList(); String query = "SELECT * FROM LichSuTiemPhong"; conn = this.getConnectMySql(); try { pst = conn.prepareStatement(query); rs = pst.executeQuery(); while (rs.next()) { KhachHang khachHang = khachHangDAO.getKhachHangByID(rs.getInt("MaKH")); VacXin vacXin = vacxinDAO.getVacXin(rs.getInt("MaVacXin")); LichSuTiemPhong obj = new LichSuTiemPhong(khachHang, vacXin, rs.getInt("SoTTMui"), rs.getDate("NgayTiemPhong"), rs.getDate("NgayHenTiepTheo")); AlLSTP.add(obj); } } catch (SQLException ex) { Logger.getLogger(LichSuTiemPhongDAO.class.getName()).log(Level.SEVERE, null, ex); } finally { try { rs.close(); Trang 40 GVHD: ThS Mai Văn Hà pst.close(); conn.close(); } catch (SQLException ex) { Logger.getLogger(LichSuTiemPhongDAO.class.getName()).log(Level.SEVERE, null, ex); } } return AlLSTP; } public ArrayList getLichSuTiemPhongByIDKH(int idKH) { ArrayList AlLSTP = new ArrayList(); String query = "SELECT * FROM LichSuTiemPhong where MaKH =" + idKH; conn = this.getConnectMySql(); try { st = conn.createStatement(); rs = st.executeQuery(query); while (rs.next()) { VacXin vacXin = new VacXin(); KhachHang khachHang = new KhachHang(); try{ khachHang = khachHangDAO.getKhachHangByID(idKH); vacXin = vacxinDAO.getVacXin(rs.getInt("MaVacXin")); } catch (NullPointerException e) { } finally{ } LichSuTiemPhong iTem = new LichSuTiemPhong(khachHang, vacXin, rs.getInt("STTMui"), rs.getDate("NgayTiemPhong"), rs.getDate("NgayHenTiepTheo")); AlLSTP.add(iTem); } } catch (SQLException ex) { Logger.getLogger(LichSuTiemPhongDAO.class.getName()).log(Level.SEVERE, null, ex); } finally { try { rs.close(); st.close(); conn.close(); } catch (SQLException ex) { Logger.getLogger(LichSuTiemPhongDAO.class.getName()).log(Level.SEVERE, null, ex); } } return AlLSTP; } public ArrayList getTongChiPhiTheoKhachHang() { ArrayList AlTongChiPhi = new ArrayList(); String query = "SELECT MaKH, Sum(GiaVacXin) as TongChiPhi FROM lichsutiemphong INNER JOIN vacxin on lichsutiemphong.MaVacXin = vacxin.MaVacXin GROUP By MaKH"; conn = this.getConnectMySql(); try { st = conn.createStatement(); rs = st.executeQuery(query); while (rs.next()) { Trang 41 GVHD: ThS Mai Văn Hà KhachHang khachHang = (new KhachHangDAO()).getKhachHangByID(rs.getInt("MaKH")); TongChiPhi tongChiPhi = new TongChiPhi(khachHang, rs.getInt("TongChiPhi")); AlTongChiPhi.add(tongChiPhi); } } catch (SQLException ex) { Logger.getLogger(LichSuTiemPhongDAO.class.getName()).log(Level.SEVERE, null, ex); } finally { try { rs.close(); st.close(); conn.close(); } catch (SQLException ex) { Logger.getLogger(LichSuTiemPhongDAO.class.getName()).log(Level.SEVERE, null, ex); } } return AlTongChiPhi; } } ListCustomerHistoryController.java package controller; import java.io.IOException; import java.util.ArrayList; import import import import import import javax.servlet.RequestDispatcher; javax.servlet.ServletException; javax.servlet.annotation.WebServlet; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; import import import import import model.bean.KhachHang; model.bean.LichSuTiemPhong; model.dao.KhachHangDAO; model.dao.LichSuTiemPhongDAO; model.dao.PhongBenhDAO; /** * Servlet implementation class ListCustomerHistoryController */ @WebServlet("/ListCustomerHistoryController") public class ListCustomerHistoryController extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public ListCustomerHistoryController() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ Trang 42 GVHD: ThS Mai Văn Hà protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { LichSuTiemPhongDAO lichSuTiemPhongDAO = new LichSuTiemPhongDAO(); PhongBenhDAO phongBenhDAO = new PhongBenhDAO(); KhachHangDAO khachHangDAO = new KhachHangDAO(); String destination = null; ArrayList listLichSuTiemPhong = new ArrayList(); String search = request.getParameter("search"); ArrayList listKH = khachHangDAO.getList(); request.setAttribute("listKH", listKH); String idStr = request.getParameter("idKH"); if(search != null && !idStr.equals("")){ int idKH =Integer.parseInt(idStr); listLichSuTiemPhong = lichSuTiemPhongDAO.getLichSuTiemPhongByIDKH(idKH); request.setAttribute("listLichSuTiemPhong", listLichSuTiemPhong); } destination = "/view/history/list-history.jsp"; RequestDispatcher rd = getServletContext().getRequestDispatcher(destination); rd.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } History/list-history.jsp Tìm kiếm lịch sử tiêm chủng khách hàng Trang 43 GVHD: ThS Mai Văn Hà Chọn tên khách hàng: Choose Mã Khách Hàng Tên Khách Hàng Tên Bệnh Mã VacXin Tên VacXin Tổng số mũi Trang 44 GVHD: ThS Mai Văn Hà < %=benh.getTenBenh() %> %> Trang 46 GVHD: ThS Mai Văn Hà 3.2 Triển khái Chức login Chức tạo loại vắc-xin Trang 47 GVHD: ThS Mai Văn Hà Chức sửa chữa loại vắc-xin Danh sách Vắc-xin Trang 48 GVHD: ThS Mai Văn Hà Chức liệt kê toàn lịch sử khách hàng Trang 49 GVHD: ThS Mai Văn Hà Thống kê số tiền chi trả khách hàng Chức cho phép tìm kiếm theo tên Vắc-xin Tìm kiếm Vắc-xin Trang 50 GVHD: ThS Mai Văn Hà Chức Năng Logout Kết luận 4.1 Kết đạt - Lý thuyết + Đã hiểu thực xây dựng ứng dụng JSP, SERVLET theo mô hình MVC + Hiểu cách thức làm việc hoạt động JSP, SERVLET + Hiểu ý nghĩa tầng cách xây dựng project theo mô hình MVC - Thực tiễn Trang 51 GVHD: ThS Mai Văn Hà + Đã xây dựng ứng dụng JSP, SERVLET theo mô hình MVC, cụ thể xây dựng hệ thống quản lý trung tâm y tế dự phòng 4.2 Hạn chế + Hệ thống chưa tối ưu hoàn thiện số chức theo yêu cầu đề + An toàn bảo mật thông tin chưa tốt + Giao diện đơn giản 4.3 Hướng phát triển - Hoàn thiện sản phẩm, thêm quản lý phân quyền cho tác nhân Trang 52 ...GVHD: ThS Mai Văn Hà máy tính, Lập trình Java, Lập trình mạng, học phần Lập trình mạng hội tụ thực kiến thức học sách Nội dung thực hành chủ yếu thực việc lập trình Socket họ giao thức TCP/IP... ngôn ngữ Java, kết hợp kĩ thuật lập trình đa luồng, lập trình web JSP để thực hạng mục học phần Thông qua các giảng lớp, sinh viên dần thông thạo với công việc lập trình phần làm quen kĩ thuật xây... Tìm hiểu lý thuyết phương pháp lập trình thông qua tài liệu, video hướng dẫn lập trình JSP, SERVLET, MVC internet 1.4 Môi trường áp dụng - Sử dụng công cụ lập trình Eclipse Neon - Sử dụng Server

Ngày đăng: 26/08/2017, 20:50

TỪ KHÓA LIÊN QUAN

w