Tải bản đầy đủ (.ppt) (27 trang)

Chuong 7 - JavaServer Page (JSP) - ver2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (550.06 KB, 27 trang )

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:



×