Thứ Ba, 24 tháng 7, 2018
WEB-INF bảo mật
Những tập tin jsp trong thư mục WEB-INF không thể truy cập trực tiếp bằng cách gõ vào thanh địa chỉ trình duyệt được mà chỉ có thể truy cập bằng cách response.sendRedirect hoặc Dispatcher.foward
Java static method, khi nào nên sử dụng?
Phương thức static:
Nên tự hỏi: "Liệu việc tạo phương thức này có ý nghĩa gì không nếu obj chưa được xây dựng?". Nếu có, phương thức đó nên được xác định là static.
Ví dụ:
Bạn có lớp Car, và bạn có method "double convertKmphToMps(double kmph)" (Chuyển đổi từ km/h sang m/s) nên là static. Bởi vì ai đó chỉ muốn biết 1 km/h sang m/s là bao nhiêu, chứ họ không quan tâm đến việc xây dựng hay khởi tạo một chiếc xe.
Tuy nhiên "void setColor(String color)" (phương thức set màu sắc cho chiếc xe cho một chiếc xe cụ thể) không thể là static được bởi vì ta không thể gọi phương thức này khi chưa có một chiếc xe cụ thể nào được xây dựng (it's inconceivable to call the method before any Car has been constructed).
Nên tự hỏi: "Liệu việc tạo phương thức này có ý nghĩa gì không nếu obj chưa được xây dựng?". Nếu có, phương thức đó nên được xác định là static.
Ví dụ:
Bạn có lớp Car, và bạn có method "double convertKmphToMps(double kmph)" (Chuyển đổi từ km/h sang m/s) nên là static. Bởi vì ai đó chỉ muốn biết 1 km/h sang m/s là bao nhiêu, chứ họ không quan tâm đến việc xây dựng hay khởi tạo một chiếc xe.
Tuy nhiên "void setColor(String color)" (phương thức set màu sắc cho chiếc xe cho một chiếc xe cụ thể) không thể là static được bởi vì ta không thể gọi phương thức này khi chưa có một chiếc xe cụ thể nào được xây dựng (it's inconceivable to call the method before any Car has been constructed).
Tham khảo: Java: when to use static methods
Thứ Hai, 23 tháng 7, 2018
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver in Eclipse
copy .jar libray from external location to WEB-INF/lib
java.math.BigInteger cannot be cast to java.lang.Long when getConnection mysql
replace your connector jar library with mysql-connector-java-5.1.45.jar
link https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.45
link https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.45
Thứ Ba, 10 tháng 7, 2018
Giải một số dạng bài tập memory mỳ ăn liền
Dạng 1: Tìm bit luận lý, tìm bit vật lý
Cho biết không gian địa chỉ logic có 8 trang (Page) và
mỗi trang có 2048 từ nhớ (byte) được ánh xạ vào bộ nhớ vật lý 32 khung trang
(Frame).
a. Cho biết cần
bao nhiêu bit trong địa chỉ logic(luận lý)?
b. Cho biết cần
bao nhiêu bit trong địa chỉ vật lý?
Cách làm:
Tính bit page, bit byte (đề cho đơn
vị gì thì cũng phải chuyển về byte), bit frame
8 Page = 23 =>bit
page = 3 bit
2048 byte = 210 =>
bit byte = 11 bit
32 frame = 25 => bit
frame = 5 bit
Ta được bit page = 3, bit byte = 11,
bit frame = 5
a. Bit logic =
byte + page = 11 + 3 = 14 bit
b. Bit vật lý
= byte + frame = 11 +5 = 16 bit
Dạng 1 mở rộng: Một máy tính cung cấp cho người dùng không gian địa chỉ logic là 20 bit, nếu kích thước trang bộ nhớ là 2KB (Kilobyte) thì bảng trang (page table) của máy tính này có bao nhiêu trang.
Dạng 1 mở rộng: Một máy tính cung cấp cho người dùng không gian địa chỉ logic là 20 bit, nếu kích thước trang bộ nhớ là 2KB (Kilobyte) thì bảng trang (page table) của máy tính này có bao nhiêu trang.
Cơ bản bài này có thể từ bài trên mà suy ra được cách giải.
Ta có bit logic = 20 bit (đề cho)
B1: Tính bit byte
2KB = 2*1024 byte = 2048 byte = 211
=> bit byte = 11 bit
B2: Tính bit page
Từ bài trên, ta đã có : bit logic =
bit byte + bit page
=>
bit page = bit logic – bit byte = 20 – 11 = 9 bit
B3: bit page
= 9 bit => page = 2bit page = 29 = 512 page
Dạng 2: Tính địa chỉ vật lý từ địa chỉ
logic, cho biết địa chỉ logic có hợp lệ hay không.
Bài 5 trong
link https://hutechos.weebly.com/uploads/1/6/9/3/16936172/bt-bonho.pdf
Thứ Bảy, 7 tháng 7, 2018
Tìm tất cả khoá của một lược đồ quan hệ
Cho tập thuộc tính U và phụ thuộc hàm R
1. Tìm tập thuộc tính bên trái (L) và tập thuộc tính bên phải (R)
2. Tìm tập thuộc tính trung gian TG = L ^ R (giao)
3. Tìm tập đích TD = U - R
4. Hợp tập đích TD với từng phần tử của tập trung gian TG
5. Tính bao đóng ở bước 4, nếu bao đóng = U => thuộc tính khoá và ngược lại.
1. Tìm tập thuộc tính bên trái (L) và tập thuộc tính bên phải (R)
2. Tìm tập thuộc tính trung gian TG = L ^ R (giao)
3. Tìm tập đích TD = U - R
4. Hợp tập đích TD với từng phần tử của tập trung gian TG
5. Tính bao đóng ở bước 4, nếu bao đóng = U => thuộc tính khoá và ngược lại.
Thứ Sáu, 6 tháng 7, 2018
Vô hiệu hoá chỉnh sửa với thuộc tính disabled và readonly trong HTML
Hôm nay đang làm phần gửi danh sách sản phẩm order lên servlet. Ở đây danh sách sản phẩm là một cái table, và mình chọn cách gửi những cột cần thiết của table đó lên server để xử lý, thay vì phải gửi từng phẩn tử một (cách từng cái một thật ra mình cũng mới nghĩ tới à, cũng chơi tìm hiểu thử), nhưng gửi cả bảng tất nhiên nó sẽ bao gồm cả từng phần tử một.
Ở những cột mình muốn gửi lên server, mình sẽ sử dụng input trong form. Để hiển thị cho người dùng thì type của nó sẽ là text và để không thể sửa được mình sẽ chọn attribute là disable. Test đi test lại thì biến trên server luôn trả về null!?? Quái lạ, lúc sau google search thì mới hiểu disable nó sẽ ngăn không cho gửi lên servlet luôn. Giải pháp ở đây sẽ sử dụng readonly thay vì disable, nó đều có tác dụng ngăn người dùng không được chỉnh sửa dữ liệu nhưng readonly thì cho phép gửi dữ liệu đó qua form. Thế là, well, i'm done this problem.
Đây là link mình đã tham khảo, stackoverflow - the dev' life resource LOL
https://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly-readonly-for-ht
Ở những cột mình muốn gửi lên server, mình sẽ sử dụng input trong form. Để hiển thị cho người dùng thì type của nó sẽ là text và để không thể sửa được mình sẽ chọn attribute là disable. Test đi test lại thì biến trên server luôn trả về null!?? Quái lạ, lúc sau google search thì mới hiểu disable nó sẽ ngăn không cho gửi lên servlet luôn. Giải pháp ở đây sẽ sử dụng readonly thay vì disable, nó đều có tác dụng ngăn người dùng không được chỉnh sửa dữ liệu nhưng readonly thì cho phép gửi dữ liệu đó qua form. Thế là, well, i'm done this problem.
Đây là link mình đã tham khảo, stackoverflow - the dev' life resource LOL
https://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly-readonly-for-ht
Đăng ký:
Nhận xét (Atom)