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

Kiến thưc JSP và Servlet Java web cơ bản

16 1 0

Đ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 16
Dung lượng 2,06 MB

Nội dung

JSP và Servlets JSP là cái chi JSP hiểu đơn giản là những dòng code java được ghi vào HTML text 1 JSP Fundamentals JSP Element là những element trong HTML chứa code java JSP Expression Công dụng thực hiện một đoạn biểu thức hoặc phương thức trong java và tự động chuyển sang thành HTML, chỉ chứa được 1 dòng code Syntax JSP Scriptles Công dụng thực hiện một dòng hoặc một khối code java nhưng ko tự động chuyển sang thành HTML được, nếu muốn chuyển phải dùng hàm built in out prin.

JSP Servlets JSP chi JSP hiểu đơn giản dòng code java ghi vào HTML text JSP Fundamentals *JSP Element: element HTML chứa code java - - - JSP Expression: o Công dụng: thực đoạn biểu thức phương thức java tự động chuyển sang thành HTML, chứa dòng code o Syntax: JSP Scriptles: o Công dụng: thực dòng khối code java ko tự động chuyển sang thành HTML được, muốn chuyển phải dùng hàm built-in out.println o Syntax: JSP Declarations: o Công dụng: Khai báo phương thức java o Syntax: o Lưu ý: dùng JSP Expression JSP Scriptles để gọi tới phương thức khai báo *Gọi class Java JSP: thực tế ta hạn chế viết dòng JSP Elements mà thay vào viết class java bên mà sử dụng - Cách dùng : o Đi từ package đến class đến methods o Import package vào với JSP Directives Ví dụ *Include file vào JSP - Ta include file HTML file jsp khác câu lệnh: *Một số hàm built –in JSP: - Request : dùng để gửi yêu cầu đến client để nhận thông tin Response: dùng để phản hồi lại yêu cầu từ client Out: dùng để chuyển nội dung code java thành HTML Session: chứa thông tin riêng user Application: chứa thông tin chia từ nhiều user Reading HTML Form Data With JSP - - Để đọc dử liệu từ form HTML attribute action form tag phải tới file jsp thực thao tác đọc, nhấn submit liệu input form gửi cho file attribute action Ta dùng câu lệnh: o request.getParameter(“name input”) để lấy giá trị từ input có giá trị dùng short hand ${param.name_input} o request.getParameterValues(“name input”) để lấy tất giá trị input chứa nhiều giá trị, thường chứa vào mảng Lưu ý: với syntax shorthand khơng cần đặt tron jsp elements, muốn lấy tất giá trị input phải vào chuỗi ví dụ: State Management in JSP A Tracking actions ngời dùng session - Như nói session phần riêng biệt, user, Ví dụ : giỏ hàng giỏ hàng người khác -> giỏ hàng session - Cơ chế session với tomcat: Tomcat ln liệu session người dùng, người dùng truy cập dựa vào session người mà nhận diện người -> nói dễ hiểu tomcat trình duyệt lưu session cũa user tự động - Với trình quản lý sever khác sau khoảng thời gian cụ thể tự động restart session người dùng (với tomcat 5phuts) *Một số phương thức session: - - - Thêm liệu vào session: o Syntax: session.setAtribute (String key , Object value); o Trong đó: - key: tên người lập trình đặt để truy cập đến  value: đối tượng đưa vào session Lấy liệu từ session o Syntax: session.getAtribute(String key); o Trong đó: muốn lấy giá trị nhập key giá trị o Lưu ý: lưu giá trị lấy từ session vào collection ta phải ép kiểu thành collection đó, VD: Lấy id : o -  Syntax: session.getId(); Invalidate: o Khi bạn muốn hủy bỏ session không chờ đến thời gian timeout o Syntax: session.invalidate() Configure Session Timeout o Khi bạn muốn chỉnh sửa thời gian timeout server o Syntax: session.setMaxInactiveInterval(milisecond) B Cookies Tổng quan Cookies - Cookie : cookies dùng để chứa thông tin người dùng giúp web nhận biết người dùng ai, liệu cookie lưu dạng cặp key(name) value, trang web có nhiều cookie cho người dùng để lưu nhiều thơng tin khác Trình duyệt gửi cookie mà trùng với tên domain servẻr Thao tác với Cookie jsp - JSP cung cấp cho ta class tên Cookie để thao tác với cookie, class định nghĩa gói thư viện javax.servlet.http - Cách để tạo cookies: - o Syntax: Cookies theCookie = new Cookies(String name, String value) o Trong đó: theCookie :tên biến lưu trữ cookies  String name: name (key) cookie  String value: value name Gửi cookie cho browser o -  Syntax: respone.addCookie(theCookie) Set life span cho cookies o Syntax: theCookie.setMaxAge(second) - Ví dụ sending cookie cho browser: - Get cookies từ browser: - o Syntax: Cookie[] theCookies = request.getCookies(); o Vì web có nhiều cookies cho người dùng nên get ta get tất nên phải lưu trữ mảng object Cookie Lây tên Cookie: o - Syntax: theCookie.getName() Lấy value Cookie: o Syntax: theCookie.getValue(); - Ví dụ đọc liệu từ Cookies: C Endcode URL Cookie - Trong cookie có số ký tự mà browser khơng đọc ví dụ khoảng trắng, dấu + … Lúc ta mã hóa ký tự thành code URL theo nguyên tắc bảng mã UTF-8 - Trong java cung cấp cho class để encode (mã hóa) decode (giải mã) URL : - o java.net.URLEncoder : để encode o java.net.URLDecoder : để decode Cách để encode: o Syntax: URLEncoder.encode(String s, "UTF-8"); o Trong : o -  String s : chuỗi muốn mã hóa  UTF-8 : bảng mã dùng để mã hóa Vídụ: Cách để decode: o Syntax: URLDecoder.decode(String s, "UTF-8"); o Trong đó: o  String s : chuỗi muốn giải mã  UTF-8 : bảng mã dùng để mã hóa Vídụ: JSP Standard Tag Library (JSTL) - Tag JSP: Trong thực tế ta hạn chế dùng nhiều code scriptles, để giúp hạn chế điều ta dùng tag jsp - Lợi ích tag JSP: - o Hạn chế tối đa số lượng code scriptles jsp o Giữ file JSP clean o Có thể tái sử dụng cho nhiều file, tránh viết hàng ngành dòng code lặp lặp lại Có loại tag : o Custome Tag : Tag người dùng tự định nghĩa sử dụng o JSP Standard Tag Library (JSTL): thư viện thẻ chuẩn JSP cung cấp - JSTL có tag : Core Tag, Functions Tag, I18 Tag, XML Tag, SQL Tag - Để sử dụng JSTL ta phải copy file jar thư viện vào thư mục lib project A Core Tag - Core Tag tag JSTL cung cấp số thao tác xử lý đơn giản - Để sử dụng core tag ta dùng câu lệnh: *Một số tag phổ biến core tags: - - : để lặt phần tử thành phần trang o Ví dụ: o Trong :  var : biến lưu tạm biến i vòng for  items : thành phần lặp qua  Lưu ý : items thành phần trang nên ta muốn lặp qua ta phải dùng lệnh pageContent.setAtribute(String name, value); để set thành atribute trang : câu lệnh if đơn giản (trong core tag ko có else tag cho if) o Ví dụ: o - - Trong test điều kiện : câu lệnh switch case core tag o Ví dụ: o Trong đó:  : case  : giống defautl : dùng để khai báo biến B Function Tag - Có hàm dựng sẳn dùng cho JSTL - Syntax Function Tag khác so với tag khác, lời gọi hàm không cần cặp dấu < /> - Để sử dụng function tag ta dùng câu lệnh: *Một số hàm phổ biến function tag: - fn:length(data) : cho độ dài data truyền vào - fn:startsWith(s) : test xem String có bắt đầu s hay ko - fn:endWith(s) : test xem String có kết thúc s hay ko - fn:join(array,c) : nối thành phần mảng thành chuỗi với ký tự ngăn cách phần tử c (tương tự JS) o - Lưu ý : muốn dùng join phải dùng split để biến chuỗi thành mảng fn:split(string,c) : tách chuỗi ký tự thành mảng phần tử với c điểm chung cắt (tương tự JS) o VD: fn:split(“,”) : tra tới dấu “,” cắt thành phần tử Dấu “, ” bỏ C Formating Tag (I18N Tag) - Là tag giúp ta định dạng dử liệu cho ngôn ngữ tránh hard code cho ngôn ngữ khác - Để sử dụng formating tag ta dùng câu lệnh: *Một số hàm phổ biến Formarting Tag - : để set locale cho trang - : để set bundel hay nguồn dịch cho tất hàm o - Lưu ý : set bundle cần đưa url đến tên file không cần nối thêm locale ta có setLocale cho trang hàm tự động nối thêm locale cho file : để set label ta setBundle hàm lấy giá trị từ url set theo key hàm, thay đổi tùy theo url set o Lưu ý : theo chuẩn đặt tên key file resources key có tên sau : labels.name (với name người dùng đặt) *Một số lưu ý đặt tên file: - - Tên file resources với locale phải đặt theo quy tắt namefile_lanCode_countryCode.properties Với: o Namefile : tên file o LanCode: mã ngôn ngữ o CountryCode : mã quốc giá o Ví dụ: mylabels_us_US.properties (ngôn ngữ tiếng anh quốc gia US) sau: Trong file resources gồm cặp key value, ví dụ: o Labels.greet = Hello Servlet Fundamentals - Servlet class mở rộng java giúp chạy code java server, khởi tạo HTML gửi cho client - Cơ chế servlet : client gửi request cho java class java class gửi response cho client file HTML - Vòng đời Servlet: - Một vòng đời servlet có bước: o Tải lớp Servlet vào nhớ o Tạo đối tượng lớp Servlet o Gọi phương thức init() Servlet o Gọi phương thức service() Servlet (trong service có phương thức doGet() doPost() ) o Gọi phương thức destroy() Servlet - Ví dụ chương trình Hello World Servlet - Ta cần quan tâm đến phương thức doGet() @WebServlet(“HelloServlet”) đầu class, đó: o @WebServlet(“HelloServlet”) : đường dẫn đến file class java o response.setContentType("text/html") : lệnh dùng để set giá trị trả cho client file html Với setContentType để nói cho client hiểu kiểu trả text/html quy chuẩn để khai báo kiểu trả file HTML o PrintWriter out = response.getWriter() : để tạo đối tượng out thuộc lớp PrintWriter để ghi nối vào file HTML trả cho client o out.print(“HTML content”) : ghi nội dung HTML vào file HTML *Điểm khác Servlet JSP - - Servlet Là file class Java (1 file java) Nó generate HTMl gửi cho client JSP - Là file HTML với đuôi mở rộng jsp (1 file HTML tích hợp thêm code java) - Bản thân chứa nd HTML tĩnh JSP dùng để generate HTML bên file Khi dùng Servlet JSP: thực tế ta dùng kết hợp 2, Servlet dùng để xử lý số liệu logic JSP dùng để generate web A Lấy data form - Để lấy data form ta dùng câu lệnh : request.getParameter(“name”) - Ví dụ: - Trong form dùng servlet để xử lý liệu ta khai báo thêm thuộc tính methods = “GET/ POST” - Phương thức GET gửi data cho phương thức doGet() servlet POST gửi data cho phương thức doPost *Điểm khác GET POST - Cả phương thức truyền liệu giao thức HTPP, người dùng nhấn submit data mã hóa theo giản đồ gọi URL encoding giản đồ gồm cặp name = value giá trị ngăn cách dấu & o - Ví dụ: name=value1&name1=value2&name2=value3 GET GET gửi thông tin người dùng thông qua đường dẫn trang Ví dụ : http://www.example.com/index.ht m?name=value1&name1=value1 - POST POST gửi thơng tin dạng HTML header, phần body HTML header Tính bảo mật cao - Kém bảo mật dễ lộ thông tin Hạn chế liệu Có thể truyền bookmark email URL - Khơng thể gửi dử liệu nhị phần, hình ảnh *Khi dùng GET dùng POST - Không giớ hạn liệu Không truyền đc bookmark email URL Có thể gửi liệu nhị phân, hình ảnh - GET thường dùng để lấy liệu để truy xuất liệu nhanh chóng - POST dùng để tạo liệu bảo mật B Reading Servlet Parameter - web.xml : web.xml file configure cho tất file servlet chứa đường dẫn cho file servlet, chứa Context Parameters File web.xml nằm thư mục WEB-INF - Cách đoc Context Parameters từ file web.xml: o Context Parameters từ file web.xml có dạng: o Để đọc ta cần phải khai báo đối tượng thuộc lớp ServletContext cho phương thức getServletContext() o - Ví dụ :  Trong : ServletrContext interface giúp Servlet giao tiếp với Servler Container,  getServletContext() trả ServletContext mà có session thuộc (?) Cuối dùng getInitParameter(“param-name”) : đẻ lấy parameter ứng với paramname Mô hình MVC (Model – View – Controller) A Mơ hình MVC - Mơ hình MVC (Model – View – Controller) : mơ hình tổ chức phần mềm, tên gọi chia làm phần phần đảm nhiệm chức riêng biệt có kết nối với - Model : trung tâm liệu, database, file ,… cung cấp liệu cho controller (Database) - Controller : nhận request từ client thực logic từ data modal trả cho view (Servlet) - View : nhận data từ Controller để hiển thị trang web trả client (JSP) *Luồng xử lý MVC: - Client gửi request cho Controller - Controller gửi yêu cầu tới Model, Model trả dử liệu cho Controller để tiếp tục xử lý - Controller nhận data từ Model thực xử lý logic Sau hoàn tất Controller gửi Data cho View - View nhận data generate HTML respone cho client B Mơ hình MVC Java - Trong Java Servlet Controller, JSP View database Model - Một file Servlet mơ hình MVC: - Một file JSP mơ hình MVC: - Phần sau ta giải thích kỹ câu lệnh request.setAttribute() - Là câu lệnh set liệu cho dịng request để file nhận dịng request xử dụng liệu RequestDispatcher - RequestDispatcher interface giúp ta định nghĩa object nhận request từ clent gửi cho nguồn (HTML file, JSP file, file Servlet khác) khác - Ví dụ khai báo object RequestDispatcher - Trong : o - Phương thức request.getRequestDispatcher(“/view_student.jsp”) : tạo đối tượng RequestDispatcher chứa địa để ta gửi request đến (ở file JSP) dispatcher.forward(request, response) : câu lệnh để ta chuyển request đến file khác định dạng từ trước, có tham số request respone chuyển Tóm tắt chế - Servlet nhận dịng request, sau xử lý tính tốn tạo data, ta đính data vào dịng request câu lệnh request.setAttribute() để chuyển - Để chuyển dòng request sang file khác trước hết ta cần khai báo đối tượng RequestDispatcher, phương thức getRequestDispatcher(“đường dẫn”) ta truyền tham số đường dẫn đến file muốn truyền request - Ta dùng dispatcher.forward(request, response) để tiến hành gửi dịng request sau đính kèm dử liệu đến file (cụ thể file JSP) - Ở file JSP tự động nhận request nên ta dùng ${ } để truy cập đến data rendar thành HTML JDBC - JDBC : JDBC thư viện giúp Servlet kết nối với database - Để cài đặt JDBC ta làm tương tự JSTL, sau tải xong ta thêm vào file WEB-INF/lib project Xây dụng database web app hoàn chỉnh A Connection Pool - Cơ chế làm việc với database tomcat: tomcat kết nối với database lại cho phép kết nối với nhiều người dùng, thời điểm database tương tác với user Điều dẫn đến hệ thông bị chậm, để khắc phục ta dùng tới khái niệm Connection Pool Connection Pool gì? - Connection pool kỹ thuật cho phép tạo trì tập kết nối dùng chung làm tăng hiệu xuât cho ứng dụng web cách sử dụng lại kết nối có u cầu thay tạo Triển khai Connection Pool - Để triển khai Connection Pool cho Tomcat hiểu ta cần dùng đến file context.xml (file cần lưu thu mục META-INF), file context.html ta cấu hình cho connection pool - File context.xml có dạng: - Trong o name : bí danh để servlet gọi tới o maxActive = “20” : số lượng kết nối tối đa thời điểm o maxIdle = “5” : số lượng kết nối tối thiểu trì database rảnh Nghĩa có 1,2 kết nối số lượng kết nối bể ln trì để sẳn sàng cho dự án o maxWait = “10000” : thời gian chờ kết nối, vượt số coi không kết nối được, hệ thống chuyển sang việc khác (milisecond) o Username password : username password dùng để đăng nhập vào database o url: cung cấp đường dẫn đến database shcema B Kết nối Servlet với database JDBC - Để kết nối Servlet với database có bước theo mơ hình sau: - Bước 1: Khai báo Driver(JDBC) Class.forname() - Bước 2: Get Connection class java - Bước 3: tạo Statement để tương tác với database - Bước 4: Gửi query để nhận data - Bước 5: Đóng connection Khai báo Driver (JDBC) - Để khai báo Driver (JDBC) ta dùng câu lệnh Class.forname(“com.mysql.cj.jdbc.Driver”) để đăng ký driver dùng để kết nối với database cụ thể driver JDBC Get Connection class java riêng biệt - Để connect với database ta dùng câu lệnh DriverManager.getConnection(String url, String name, String pass) - Trong : o String url : url dẫn đến database “jdbc:mysql://localhost:3306/name_database” o String name : tên đăng nhập dtb o String pass : password đn dtb - Phương thức getConnection() trả object Connection - Ví dụ bước - Lưu ý : ta có Exception ClassNotFound SQLException forName() throw ClassNotFound getConnection() throw SQLException Tạo Statement - Statement đối tượng cho phép ta gửi execute cho SQL nhận lại liệu, statement trung gian giúp ta giao tiếp với database - Có loại : Statement PreparedStatement - Điểm khác PreparedStatement truyền tham số - Để tạo statement ta dùng phương thức: createStatement() cho object connection - Để gửi execute ta dùng phương thức executeQuery(String execute) : phương thức trả ResultSet Gửi Execute - Để gửi execute ta dùng phương thức executeQuery(String execute) : phương thức trả ResultSet - Phương thức vừa gửi vừa nhận data - ResultSet interface cho phép ta nhận data gửi từ database dạng bảng - Ví dụ cho bc 3,4: Close Connection - Sau lấy xong data ta tiến hành close object finally - Ví dụ cho bc 5: ... Labels.greet = Hello Servlet Fundamentals - Servlet class mở rộng java giúp chạy code java server, khởi tạo HTML gửi cho client - Cơ chế servlet : client gửi request cho java class java class gửi response... phương thức destroy() Servlet - Ví dụ chương trình Hello World Servlet - Ta cần quan tâm đến phương thức doGet() @WebServlet(“HelloServlet”) đầu class, đó: o @WebServlet(“HelloServlet”) : đường dẫn... file HTML - Vòng đời Servlet: - Một vịng đời servlet có bước: o Tải lớp Servlet vào nhớ o Tạo đối tượng lớp Servlet o Gọi phương thức init() Servlet o Gọi phương thức service() Servlet (trong service

Ngày đăng: 22/07/2022, 14:10

TỪ KHÓA LIÊN QUAN

w