JavaServer Page (JSP)
Nguyễn Quang Hùng
E-mail:
Web site: />
Mục tiêu
Nắm bắt cơng nghệ lập trình trang web động
JSP.
Tìm hiểu về các đối tượng có sẳn trong JSP như
là: request, response, out, session…để dễ dàng
trong việc viết các ứng dụng Web.
Viết một ứng dụng Tra cứu danh bạ điện thoại
bằng JSP.
Nguyễn Quang Hùng – E-mail:
Mục lục
Giới thiệu về JSP
Cấu trúc của một trang JSP
Lập trình JSP:
Các đối tượng có sẳn trong trang JSP
Viết một ứng dụng Tra cứu danh bạ điện thoại
bằng JSP
Nguyễn Quang Hùng – E-mail:
Giới thiệu về JSP
JSP là cơng nghệ script chạy phía web server của hãng Sun đối
trọng với ASP của Microsoft.
JSP dùng ngôn ngữ Java cho các phát biểu như if, for, do…
while, while, biểu thức, lời gọi hàm…. và phân biệt chữ HOA
và thường.
Hiện JSP có thể chạy trên nhiều Web server khác nhau từ
Tomcat, Apache, Jrun, JavaWebServer,... Miễn là chúng hỗ trợ
Servlet Engine.
Mỗi Webserver chỉ hỗ trợ tối đa 1 trong 2 công nghệ JSP hay
ASP. Để server nhận biết được file nào là JSP, ta luôn dùng
extension đã qui định theo cấu hình (mặc định là *.jsp).
Nguyễn Quang Hùng – E-mail:
Request/Response khi gọi một trang JSP
Nguyễn Quang Hùng – E-mail:
Cấu trúc trang JSP
Một trang JSP là 1 file *.jsp , ví dụ: “hello.jsp”
Viết một trang JSP bằng bất kỳ trình soạn thảo nào kể cả
Notepad, rồi lưu lại với tên *.jsp.
JSP thường dùng các đối tượng Java chính quy để xử lý các giải
thuật phức tạp. Các đối tượng java này sẽ được đóng gói dạng
JavaBean.
Đoạn script JSP được đóng trong tag <% .... %>.
Biểu thức dạng: <%= (exp) %> tương đương với <% out.print(
exp ) %>
ví dụ: <%= (5 + 3) %> tương đương với <% out.println( 5 + 3 ) %>
Nguyễn Quang Hùng – E-mail:
Lập trình JSP
Các đối tượng có sẳn trong trang JSP:
Đối tượng request
Đối tượng response
Đối tượng out
Đối tượng application
Đối tượng session
…
Nguyễn Quang Hùng – E-mail:
Ví dụ: Trang date.jsp
1.
<HTML>
2.
<HEAD> <TITLE>JSP Example</TITLE> </HEAD>
3.
<BODY BGCOLOR="ffffcc">
4.
<CENTER>
5.
<H2>Date and Time</H2>
6.
<% /*Begin JSP script–Java code sample–Comment */
7.
java.util.Date today = new java.util.Date();
8.
out.println("Today's date is: "+today);
9.
%>
10.
</CENTER>
11.
</BODY> </HTML>
Nguyễn Quang Hùng – E-mail:
Ví dụ: Trang date.jsp (kết quả)
Nguyễn Quang Hùng – E-mail:
Các thẻ script trong JSP thường dùng
Khối <% ... %>
Dùng để nắm bắt các khai báo, biểu thức, tạo đối tượng, gọi phương
thức… VD:
<% out.println(“
Hello to JSP world
”); %>
Thẻ <%@page ... %>
Dùng để khai báo ngôn ngữ script, các phát biểu import. VD:
%@page language="java" import="java.util.*; java.sql.*" %
Thẻ <%! .... %>
Dùng để khai báo các biến, các phương thức cấp trang JSP. VD:
<%! int x = 10; double y = 2.0; %>.
Nguyễn Quang Hùng – E-mail:
Các thẻ script trong JSP thường dùng (2)
Thẻ <%= ... %>
Dùng cho các biểu thức.VD:
<%= a+b %> or <%= new java.util.Date() %>
Thẻ <%@ include ... %>
Dùng để chèn các file JSP khác. VD:
<%@include file="copyright.html" %>
Nguyễn Quang Hùng – E-mail:
Viết ứng dụng tra cứu danh bạ điện thoại bằng
Jbuilder Web Application Module
Tạo một project trong JBuilder
1.
Tạo 1 module ứng dụng web (WebApplication module) trong
project mới này.
2.
1.
2.
Ví dụ: JspDanhBa.war
File web.xml trong *.war cho biết cấu hình triển khai ứng dụng web
lên server.
3.
Tạo các trang JSP / Servlet trong module WebApp. trên.
4.
Copy JspDanhBa.war lên Web server hỗ trợ.
Ví dụ: %TOMCAT_HOME%\webapps\JspDanhBa.war
Nguyễn Quang Hùng – E-mail:
Viết ứng dụng Tra cứu DBĐT bằng JSP
Nguyễn Quang Hùng – E-mail:
Viết ứng dụng Tra cứu DBĐT bằng JSP (tiếp)
Nguyễn Quang Hùng – E-mail:
Trang InputForm.jsp
Nguyễn Quang Hùng – E-mail:
Trang hiển thị kết quả tìm kiếm
Nguyễn Quang Hùng – E-mail:
Viết trang InputForm.jsp
1.
<%@page contentType="text/html; charset=UTF-8"%>
2.
<html>
3.
<head>
4.
<title>Ung dung tra cuu danh ba dien thoai bang
JSP</title>
5.
</head>
6.
<body bgcolor="#ffffff">
7.
8.
Chào mừng bạn đến với những trang vàng điện thoại
!
Bạn hãy nhập thơng tin tìm kiếm bên dưới:
Nguyễn Quang Hùng – E-mail:
Viết trang InputForm.jsp (tiếp)
<form action="SearchNoBean.jsp" method="post">
<table>
<tr><td>Tìm theo tên:
<td> <input type="text" name="tentbao"> </tr>
<tr><td>Tìm theo số thuê bao:
<td> <input type="text" name="sotbao"> </tr>
</table>
<input type="submit" name="Submit" value="Tìm kiếm">
<input type="reset" value="Nhập lại">
</form></body></html>
Nguyễn Quang Hùng – E-mail:
Viết trang tìm kiếm khơng dùng JavaBean –
Trang SearchNoBean.jsp
1.
<%@page contentType="text/html; charset=UTF-8"%>
2.
<%@page import="java.sql.*"%>
3.
<html><head><title>Ket qua tra cuu danh ba dien
thoai</title></head>
4.
<body bgcolor="#ffffff">
5.
Kết quả tra cứu danh bạ điện thoại:
6.
<table border="1"> <!– Tạo table hiển thị kết quả cho đẹp -->
7.
<th>Mã số</th> <th>Họ và tên</th> <th>Số thuê bao</th>
8.
<th>Ðịa chỉ</th>
Nguyễn Quang Hùng – E-mail:
Trang SearchNoBean.jsp (tiếp)
1.
<% java.sql.Connection con = null;
2.
java.sql.PreparedStatement stmt = null;
3.
java.sql.ResultSet rs = null;
4.
try {
5.
String strDS = "jdbc:odbc:DanhBaDT";
6.
String strUsername = "", strPassword = "";
7.
// Tạo cầu nối đến CSDL
8.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
9.
con = DriverManager.getConnection(strDS,
10.
11.
strUsername,
strPassword);
Nguyễn
Quang Hùng
– E-mail:
Trang SearchNoBean.jsp (tiếp)
1.
// Xây dựng câu SQL Select để truy vấn CSDL
2.
String strSQL = "select * from CUSTOMER where ";
3.
String tentbao = request.getParameter("tentbao");
4.
if (tentbao != null && tentbao.trim().length() > 0) {
strSQL += " (tentbao like '%" + tentbao + "%' ) ";
5.
6.
}
7.
// Tương tự cho việc tìm theo số thuê bao hay địa chỉ
8.
stmt = con.prepareStatement(strSQL);
9.
// Thực thi câu SQL select
10.
rs = stmt.executeQuery();
11.
int nCountRows
= 0;
Nguyễn Quang Hùng – E-mail:
Trang SearchNoBean.jsp (tiếp)
1.
if (rs != null) {
2.
ResultSetMetaData meta = rs.getMetaData();
3.
while (rs.next()) {
4.
++nCountRows;
out.println("<tr>");
5.
for (int i = 1; i <= meta.getColumnCount(); i++) {
/*Kết thúc phần Java code */ %>
6.
<td> <%= rs.getString(i) %> </td>
7.
<%
8.
/* Bắt đầu phần Java code mới*/
9.
}
10.
out.println("\t\t</tr>");
11.
}
12.
out.println("<tr><td>Tìm thấy: " + nCountRows + " kết quả");
13.
}
Nguyễn Quang Hùng – E-mail:
Trang SearchNoBean.jsp (tiếp)
1.
} catch (Exception _ex) {
out.println(_ex.toString() + _ex.getMessage());
2.
3.
} finally { /* Phải đóng tất cả lại */
if (rs != null)
4.
try { rs.close();
5.
if (stmt != null)
6.
try { stmt.close(); }catch (Exception _ex1) {}
7.
if (con != null)
8.
try { con.close(); }catch (Exception _ex1) {}
9.
10.
}catch (Exception _ex1) { }
}
%>
Nguyễn Quang Hùng – E-mail:
Tạo một JavaBean cho việc lấy dữ liệu từ
CSDL Access bằng Jdbc-Odbc driver
Nguyễn Quang Hùng – E-mail:
Tạo một JavaBean cho việc lấy dữ liệu từ
CSDL Access bằng Jdbc-Odbc driver
Nguyễn Quang Hùng – E-mail: