16/12/2014
JSP CƠ BẢN
Tóm tắt : JSP hay java Server Page là công nghệ lập trình web phía máy chủ của java.
Các cú pháp cơ bản của JSP
1. Sử dụng thẻ bọc mã
- Ưu điểm của jsp : là khả năng nhúng mã java với các mã html. Mã java được đặt trong cặp dấu . Bên trong mã Java nếu muốn chèn mã HTML vào ta sử dụng phương thức out.println(“Mã html”) ;
- Đối tượng out : là đối tượng mặc định của trình chủ web server, nó xuất phát từ lớp javax.Servlet.jsp.JspWriter
- Thẻ HTML và mã java có thể trộn lẫn với nhau
- Ví dụ :
out.println(“”);
2. Hiển thị kết xuất bằng cú pháp
- Khác với để hiển thị một khối lệnh (gồm nhiều lệnh java)
- dùng để trả về một giá trị biến (value) hay hàm (function)
- Ví dụ :
Welcome
Email of you :
Chú ý : Không có dấu chấm phẩy sau biến hoặc hàm.
Và cú pháp này hay dùng hơn out.print() trong cú pháp
3. Chèn chú thích vào mã trang
Giống với javascript hoặc php thì JSP cho phép hỗ trợ comment vào code
Có 2 loại như sau :
// commment for 1 line
Và /* comment for multiline */
4. Khai báo phương thức (hàm) và biến hằng (value, static value)
- Cho phép bạn định nghĩa 1 hoặc nhiều phương thức và biến
- Phương thức và biến đó có thể được gọi ở bất cứ nơi đâu trong trang JSP
5. Đối tượng SESSION, REQUEST, RESPONSE trong JSP
5.1 Đối tượng Request
- Lấy giá trị từ Client gửi lên Server
- Thường sử dụng với các thẻ từ form như submit, text, radiobutton (mảng dữ liệu).
- request.getParameter(“trường name ở client”);
5.2 Đối tượng Response
- Trả dữ liệu từ Server về Client
- Sử dụng đối tượng response thuộc lớp javax.servlet.ServletResponse
- response.sendRedirect(“Login.jsp”);
5.3 Đối tượng SESSION
- Sử dụng để truyền giá trị từ trang web này sang trang web khác trong 1 phiên làm việc. Đối tượng này thuộc lớp HttpSession
- Nhận diện 1 phiên làm việc :
- Khởi tạo và gán giá trị cho session :
session.putValue(“userid”,”123”);
session.putValue(“username”,”username”);
session.putValue(“fullname”,”nguyentuananh”);
session.putValue(“email”,”[email protected]”)
- Lấy giá trị từ session :
session.getValue(“userid”);
session.getValue(“username”);
session.getValue(“fullname”);
- Hủy Session :
session.removeValue(“userid”);
session.removeValue(“username”);
session.removeValue(“fullname”);
6. Java Database Connectivity
6.1 Sản phẩm của JDBC
Bao gồm 3 loại chính là gói java.sql, Test suite, cầu nối JDBC-ODBC và java.sql.package
JDBC là các tập tin interface và class cho phép kết nối CSDL, chúng chứa đựng trong gói java.sql và những interface này bao gồm :
• CallableStatement : chứa đựng các phương thức để thực thi thủ tục SQL có hỗ trợ các tham số IN OUT
• Connection : bảo trì và theo dõi kết nối CSDL
• DatabaseMetaData : cung cấp thông tin của CSDL
• Driver : Tạo ra đối tượng kết nối
• PrepareStatement : Biên dịch phát biểu SQL trước khi thực thi
• ResultSet : cung cấp phương thức để truy cập dữ liệu từ SQL
• ResultSetMetaData : Thu thập thông tin siêu dữ liệu phù hợp với đối tượng ResultSet cuối cùng
• Statement : Thực thi phát biểu SQL và truy vấn dữ liệu trả về từ đối tượng ResultSet
Test Suit : Dùng để kiểm tra chức năng các trình điều khiển JDBC, nó đảm bảo rằng tất cả các phương thức và lớp cài đặt trong JDBC API được cài đặt
6.2 Các đối tượng kết nối CSDL
Có 3 đối tượng chính trong việc kêt nối CSDL : Connection, Statement, ResultSet. Trước khi làm việc phải khai báo thư viện java.sql.* và khai báo trình điều khiển JdbcOdbc như sau :
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
• Connection : là đối tượng dùng để mở kết nối bằng JDBC driver
- Khai báo :
Connection con = DriverManager.getConnection(“jdbc:odbc:bookstore”,”username”,”pass”);
Hay connection con = null ;
con = ….
- Tạo đối tượng statement
con.createStatement();
- Đóng kết nối
con.close();
- Giải phóng kết nối :
con.dispose();
• Statement : Dùng để thực thi phát biểu SQL dùng cho hành động truy vấn và cập nhật, thay đổi xóa dữ liệu
- Khai báo :
Statement st = con.createStatement();
Hay
Statement st = null ;
st = con.createStatement();
- Thực thi phát biểu SQL :
st.excuteUpdate(sql);
hay khai báo biến int để nhận số mẩu tin được thực thi
int records = st.excuteUpdate(sql);
• ResultSet : nắm giữ một tập dữ liệu cho phép bạn thao tác trên tập dữ liệu bằng các phương thức và thuộc tính của nó
- Khai báo :
ResultSet rs = st.excuteQuery(sql);
- Đọc dữ liệu từ đối tượng ResultSet
+ rs.next();
+ kiểm tra đối tượng có tồn tại mẩu tin không :
if(rs.next()){
}
+ Duyệt từng mẩu tin bên trong đối tượng :
while(rs.next()){
}
+ Để đọc giá trị từ field ta sử dụng phương thức của đối tượng này ví dụ getString(fieldName)
string x = rs.getString(“CustomerID”);
+ Đóng kết nối
rs.close();
7. Thêm, sửa, xóa dữ liệu
• Thêm dữ liệu
statement st ;
strSQL = “insert into Categories values(“database”)”;
st.excuteUpdate(strSQL);
• Cập nhật dữ liệu
statement st ;
strSQL = “update Categories set CateName=’database’”
strSQL += “where CateID=43” ;
j = st.excuteUpdate(strSQL);
• Xóa mẩu tin
statement st ;
strSQL = “delete from categories where CateID>=30” ;
j = st.excuteUpdate(strSQL);