Lp trình web
61 | PA G E Phm Quang Hiếu - TNUT
CHƯƠNG 3: LẬP TRÌNH PHÍA SERVER VỚI JSP VÀ JDBC
MỤC TIÊU:
1. Nm khái niệm cơ bn v lp trình web vi JSP; nm cách to và biên dch website JSP vi
Apache Tomcat; nm cách kết nối cơ sở d liu vi JDBC.
2. Hiu rõ các th và ch th JSP; biết cách tương tác vi Form trong JSP; biết cách kết ni
CSDL vi JSP.
3. Xây dng ng dng JSP phía server vi CSDL theo mô hình 3 tng MVC.
NỘI DUNG CHI TIẾT
3.1. Giới thiệu Lập trình phía Server với JSP
Lp trình phía Server (Server-side Programming) là phn ct lõi ca vic xây dng các ng
dng web phc tp. Nếu các công ngh phía client (HTML, CSS, JavaScript) làm nhim v hin th
giao din và x lý tương tác trên trình duyệt, thì lp trình phía server li đm nhn các tác v x
logic, qun lý d liệu và tương tác với cơ sở d liu.
3.1.1. Khái niệm Server-side Programming
Lp trình phía Server là vic tạo ra các chương trình, script chy trên máy ch (server) ca
mt ng dụng web. Các chương trình này chu trách nhim:
- X lý yêu cu (Requests): Tiếp nhn các yêu cu t trình duyt của người dùng (ví d: yêu
cầu đăng nhập, gi form, tìm kiếm sn phm).
- X lý logic nghip v: Thc hin các phép tính, kim tra, xác thc d liệu, và tương tác với
các h thng backend khác.
- Tương tác với cơ sở d liu: Thêm, sa, xóa, hoc truy vn d liu t database.
- To ra phn hi (Responses): Tr v kết qu cho trình duyệt, thưng là mt trang HTML
động, mt tp JSON, hoc mt tp tin.
Khi bn nhp một địa ch website hoc nhp vào mt liên kết, trình duyt s gi mt yêu cu
(request) đến máy ch. Máy ch s chạy các chương trình server-side để x lý yêu cu đó và tạo ra
mt phn hồi (response) để gi ngưc li trình duyt ca bn.
3.1.2. Vai trò của JSP trong mô hình web động
JSP (viết tt ca JavaServer Pages) là mt công ngh phía server ca Java, đưc thiết kế đặc
bit đ tạo ra các trang web động.
- HTML đng: JSP cho phép bạn nhúng các đon mã Java (Java code) vào trong mt trang
HTML. Điu này giúp bn to ra ni dung trang web không phải là tĩnh mà thay đổi linh hot da
trên d liu t máy ch. Ví d, hin th n người dùng đã đăng nhp, danh sách sn phm t cơ sở
d liu, hoc kết qu tìm kiếm.
- Tách bit logic và giao din: JSP giúp tách bit phn giao diện người dùng (HTML, CSS)
vi phn logic x lý (Java). Điều này làm cho vic phát trin và bo trì tr nên d dàng hơn. Lập
trình viên thiết kế giao din có th tp trung vào HTML/CSS, trong khi lp trình viên Java tp trung
vào logic nghip v.
Lp trình web
62 | PA G E Phm Quang Hiếu - TNUT
3.1.3. So sánh JSP với Servlet truyền thống
JSP và Servlet đu là công ngh ca Java đ to ra các ng dng web. Tuy nhiên, chúng có vai
trò và cách tiếp cn khác nhau.
Đặc điểm
JSP
Servlet truyền thống
Vai trò
chính
View (Hiển thị giao diện)
Controller (Xử lý logic)
Cách tiếp
cận
Code-centric HTML: Bạn nhúng
mã Java vào trong HTML.
HTML-centric Java: Bạn nhúng mã HTML vào
trong Java (thường qua out.println()).
Lợi thế
Dễ dàng thiết kế giao diện, đặc biệt
khi cần tạo các trang HTML phức
tạp.
Phù hợp để xử lý các logic nghiệp vụ phức tạp,
truy vấn cơ sở dữ liệu.
Quá trình
thực thi
Server-side tự động dịch tệp .jsp
thành một Servlet Java, biên dịch và
chạy nó.
Phải tự viết toàn bộ logic trong một class Java,
biên dịch và triển khai lên server.
Trong thc tế, JSP và Servlet thường đưc s dng cùng nhau theo mô hình MVC (Model-
View-Controller). Servlet làm nhim v x lý yêu cầu và logic (Controller), sau đó chuyn d liu
cho JSP để hin th giao din (View).
3.1.4. Tổng quan kiến trúc JSP (Request – Response)
Kiến trúc JSP hoạt đng theo mt quy trình c th để x lý các yêu cu t người dùng và tr v
phn hi:
1. Request (Yêu cu): Trình duyt ca ngưi dùng gi mt yêu cầu HTTP đến máy ch web,
tr đến mt trang .jsp.
2. JSP Engine: Máy ch web nhn yêu cu và chuyển nó đến JSP Engine.
3. Dch (Translation): Nếu đây là lần đầu tiên trang JSP được yêu cu, JSP Engine s dch
trang .jsp thành mt Servlet Java.
4. Biên dch (Compilation): Servlet Java này được biên dch thành mã byte (.class file), sn
sàng đ chy.
5. Thc thi (Execution): Servlet đưc thc thi. Nó có th tương tác với cơ sở d liu, x d
liu và to ra một trang HTML động.
6. Response (Phn hi): Kết qu HTML đưc gi ngưc li trình duyt. Trình duyt nhn
được trang HTML này và hin th nó cho người dùng, giống như một trang web tĩnh bình thưng.
Lp trình web
63 | PA G E Phm Quang Hiếu - TNUT
3.2. Môi trường phát triển JSP
Để viết và chy các trang JSP, bn cn một môi trưng phát trin phù hợp. Điều này bao gm
mt máy ch ng dụng web để thc thi các tp JSP và một IDE (môi trường phát trin tích hợp) để
giúp bn viết mã mt cách hiu qu.
3.2.1. Cài đặt và cấu hình Apache Tomcat
Apache Tomcat là mt máy ch ng dng web mã ngun mở, đưc s dng rộng rãi đ chy
các ng dng Java, bao gm c JSP và Servlet. Nó hot động như một "ngôi nhà" cho ng dng web
ca bn, tiếp nhn các yêu cu t trình duyt và tr v phn hi.
Ti sao cn Tomcat? Trình duyt không th t chy mã JSP/Java. Tomcat đóng vai trò là một
servlet container, nó dch và thc thi các trang JSP/Servlet, sau đó gi kết qu HTML v cho trình
duyt.
Các bước cơ bản:
Các bước cài đt có trong ni dung Hướng dn cài đặt các công c thc hành cho môn hc
3.2.2. Cấu hình dự án JSP trên NetBeans (hoặc IDE khác)
- Cài NetBeans IDE: Trong Hướng dn cài đặt các công c thc hành cho môn hc
- Tích hp Tomcat vi IDE: Trong Hướng dn cài đặt các công c thc hành cho môn hc
- To Project JSP:
+ New Project → Java Web → Web Application.
+ Đặt tên, chn server (Tomcat), chn Java EE version.
+ IDE to sn cấu trúc thư mục chun (web pages, WEB-INF…).
- Ưu điểm: IDE t động trin khai (deploy) ng dng vào Tomcat, tiết kim thi gian.
Lp trình web
64 | PA G E Phm Quang Hiếu - TNUT
3.2.3. Cấu trúc thư mục ứng dụng JSP
Mt ng dng web Java chun có cu trúc:
- Web pages: cha JSP/HTML/CSS/JS.
- WEB-INF: không truy cp trc tiếp t browser, cha cu hình và class.
- classes: cha file .class sau khi biên dch.
- lib: chứa thư viện bên ngoài (.jar).
3.2.4. Chu trình biên dịch JSP thành Servlet
- JSP thc cht không chy trc tiếp; khi server nhn request lần đầu ti trang JSP, Tomcat:
1. Dịch JSP → Servlet Java (một file .java).
2. Biên dịch Servlet → file .class.
3. Np vào b nh và thc thi như Servlet bình thưng.
- Ln sau khi truy cp, Tomcat ch chy lại Servlet đã biên dịch (nhanh hơn).
Lp trình web
65 | PA G E Phm Quang Hiếu - TNUT
3.3. Cấu trúc và thành phần JSP
JSP đưc xây dng da trên một cú pháp đặc bit, cho phép bn kết hp mã Java và các th
JSP vào trong mt tp HTML. Hiu rõ các thành phần này là chìa khóa đ to ra các trang web động
hiu qu.
3.3.1. Cú pháp JSP và Scriptlet
Cú pháp chính ca JSP là các du ngoc nhn <% ... %><%@ ... %>. Nhng du này báo
hiu cho JSP Engine biết rằng đây là mã Java hoặc mt ch th JSP, ch không phi là HTML thông
thưng.
Scriptlet (tp lnh thc thi) là thành phần cơ bản nht đ nhúng mã Java vào trang JSP.
- Cú pháp: <% java code here %>
- Mc đích: Viết các đoạn mã logic, khai báo biến, hoc thc thi các câu lệnh điều kin và
vòng lp.
Ví d:
3.3.2. Các chỉ thị (Directives): page, include, taglib
page: Cu hình các thuc tính trang JSP (ngôn ng, mã hóa ký t, li, import class).
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
include: Chèn ni dung t file khác vào trang JSP khi biên dch.
<%@ include file="header.jsp" %>