Tài liệu tham khảo Java servlet| Môn Lập trình hướng đối tượng| Trường Đại học Bách Khoa Hà Nội

Mục tiêu: - Cài đặt Netbeans tích hợp sẵn Java EE; - Cài đặt các web server và biết cách start, stop, deploy application trên web server; - Tạo ứng dụng đầu tiên HelloWorld, dùng Servlet và deploy lên Server thực hành với request và response.

Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 1 / 19
Lab 01
Introduction to Java Servlet và JSP
Mc tiêu
- Cài đặt Netbeans tích hợp sn Java EE
- Cài đặt các web server và biết cách start, stop, deploy application trên web
server
- To ng dụng đầu tiên HelloWorld, dùng Servlet và deploy lên Server thực hành
với request và response.
Phần I Bài tp step by step
Bài 1.1
c 1: Open https://netbeans.org/downloads/ to download Netbeans
- Chn Netbeans tích hợp Java EE -> Download
- Nếu cài đặt sn trong máy là Netbeans SDK (chưa Java EE): Chn Tools-
>Plugins->Available Plugins-> Tìm và chọn Java WEB and EE -> Install
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 2 / 19
- Trong quá trình cài đt cần cài thêm các web servers tích hợp vi Netbeans.
Netbeans Java EE h tr tích hợp sn GlashFish và Apache Tomcat.
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 3 / 19
- Chn Customize -> Chn GlashFish và Apache Tomcat (hoc 1 trong 2) -> Install
c 2: Nếu không có sn GlashFish/Tomcat trong Netbeans, cài đặt GlashFish hoặc/
Apache Tomcat như sau:
2.1. Cài đặt GlashFish 4.x và cấu hình trong Netbeans
- M https://glassfish.java.net/download.html -> Download glashfish-4.1-web.zip trong
trường hợp chưa có sẵn Java EE 7 thì download glashfish-4.1.zip
- Unzip file, open Terminal (Command-Line in Windows), di chuyn tới thư mục đã
unzip, ví dụ, unzip vào C:/glashFish4 cd C:/glashFish4/bin
- Sau đó gõ tiếp lnh: asadmin start-domain để start server
- M trình duyệt (IE, Chrome,…) gõ: http://localhost:4848 (4848 là listening port của
GlashFish)
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 4 / 19
- Cấu hình GlashFish trong Netbeans:
o M Netbeans
o Chn Services Tab -> Chut phi Servers -> Add Server
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 5 / 19
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 6 / 19
- Start GlashFish trên Netbeans:
Services Tab -> Servers -> Expand Servers -> Chn GlashFish Server -> Chut phi
chn Star Server
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 7 / 19
- Chut phi GlashFish server trong Services tab -> View Domain Admin Console
hoc m trình duyệt và gõ: http://localhost:4848 s đưc kết qu nsau:
Bây giờ hãy tạo mt ng dụng web và chọn Server là GlassFish.
STEP 2.1.1: To ng dụng web trên Netbeans
File -> New Project -> Java Web - > Web Application
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 8 / 19
Đặt tên project là: HelloWorld.
Chọn server GlassFish và Java EE 7
Finish
STEP 2.1.2: Tạo servlet và deploy lên server
To package servlet cho project.
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 9 / 19
New Servlet -> HelloWorld.
Chn Add information to deployment descriptor.
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 10 / 19
M file web.xml trong thư mục Configuration Files của project, thông tin cấu hình ca
Servlet đã được thêm vào web.xml
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>servlet.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
Trong config này chúng ta thấy tên của Servlet java class ơng ứng. Sau đó url-
pattern tương ứng với tên của servlet.
Trong file HelloWorld.java chúng ta sẽ thy 1 s method được sinh t động bi Netbeans.
Build and run project, ng dng s được deploy lên GlassFish server và chúng ta sẽ thy
nó trong thư mục Applications ca server:
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 11 / 19
Gõ đường dn ti url-pattern ca servlet: http://localhost:8080/HelloWorld/HelloWorld
Mun undeploy ng dụng trên GlassFish, chúng ta vào Services tab, m GlassFish
server, chọn tên ứng dụng và undeploy.
2.2. Cài đặt Server Apache Tomcat
- M http://tomcat.apache.org/download-80.cgi để download Tomcat 8.0, chn
Deployer version.
- Un zip file ra thư mc C:/tomcat8
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 12 / 19
- Start/Stop Tomcat bằng dòng lệnh: M Command Line -> cd C:/tomcat8 [Trên
Unix/Linux/Mac, cd thư_mục_cha_Tomcat] -> cd bin
- Trên windows:
- Start Tomcat: gõ startup.bat
- Stop Tomcat: gõ shutdown.bat
- Trên Unix/Linux/Mac:
- Start Tomcat: gõ ./startup.sh
- Stop Tomcat: gõ ./shutdown.sh
- Test: gõ http://localhost:8080 trên trình duyt:
- Cấu hình Tomcat và start, stop từ Netbeans tương t như cấu hình GlashFish.
Vì GlashFish và Tomcat mặc định cổng HTTP port là 8080. Do đó khi một ng dụng đang
chạy trên GlassFish thì run/start Tomcat sẽ b xung đột.
Config li cng ca Tomcat như sau: Services tab -> Tomcat Server -> Properties
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 13 / 19
Ví dụ thay Server Port: 8085.
Mt ng dụng web có th thiết lp li Server bằng cách chọn project -> Properties ->
Run -> Chúng ta đặt li server cho ng dng trong list các server.
Chut phi project HelloWorld -> Properties -> Run -> Chn Tomcat Server thay cho
GlassFish
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 14 / 19
Clean and Build -> Deploy
M Services tab -> Servers -> Tomcat -> M thư mục Web Applications, ng dng
HelloWorld đã đưc deploy lên Tomcat Server.
Gõ đường dn: http://localhost:8080/HelloWorld/HelloWorld
Servlet HelloWorld s đưc gọi và trả v kết qu như phần trước.
Để undeploy ng dng, chn Services tab -> Servers -> Tomcat Server -> Web
Applications -> Chn ng dng mun undeploy -> Undeploy.
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 15 / 19
Ngoài ra, chúng ta cũng có th undeploy hoc deploy ng dng t Web Console ca
Tomcat.
Gõ vào trình duyệt: http://localhost:8080
Chn Manage App
Để deploy li ng dng, Deploy tab, chúng ta có th chọn đường dn ti file .war ca
ng dng. File .war ca ng dng nằm trong thư mục build/dist ca project.
Bài 1.2: To form nhập và hiển th Hello + name
Quay tr li với HelloWorld project đã tạo ra bài 1.
Mục tiêu:
- Biết cách thực hành với form trên jsp.
- Biết ly v tham s t form và hiển th lại trên response.
Bài này chúng ta thực hành với GlassFish server. Chn li server ca ng dng
HelloWorld là GlassFish.
STEP 1: Sa lại file index.html để to form nhp liu
<html>
<head>
<title>TODO supply a title</title>
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 16 / 19
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
</head>
<body>
<form method="get" action="hello.jsp">
<input type="text" id="username" name="username" />
<input type="submit" value="Go" />
</form>
</body>
</html>
Chúng ta set action ca form là một trang jsp khác có tên là hello.jsp.
STEP 2: To trang hello.jsp x lý dữ liu nhp được t form
File -> New JSP -> hello.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello <%= request.getParameter("username") %></h1>
</body>
</html>
Cng ta dùng: request.getParameter(“username”) đ ly v thông tin t input text
ca form. Đ hin th, s dụng jsp scriptlet <%= %> đ ly value t dòng code java
trên trang jsp.
Thay vì khai báo action=”hello.jsp” chúng ta có th khai báo action của form là một
servlet.
Sa li index.html -> action="HelloWorld"
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 17 / 19
Chú ý: HelloWorld là name của servlet (trong web.xml) đã config trên.
M HelloWorld.java -> Xoá toàn bộ code t sinh ca Netbeans.
Override method doGet ca HttpServlet.
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorld extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code.
*/
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet HelloServlet</title>");
out.println("</head>");
out.println("<body>");
String username = (String) request.getParameter("username");
out.println("<h1>Hello " + username + "!</h1>");
out.println("</body>");
out.println("</html>");
}
}
}
Tương tự, chúng ta cũng lấy giá trị nhp liu t form bng:
request.getParameter(“username”).
Để ghi lên response và trả v response, chúng ta dùng request.getWriter() tr v object
ca class PrintWriter.
Introduction to Software Engineering - Nhập môn Công ngh phn mm
Software Engineering Department - SoICT/HUST Trang 18 / 19
Clean and Build ng dng web với hai trường hợp, submit form lên trang hello.jsp và
submit form lên servlet. Chúng ta đều có kết qu như sau:
Introduction to Software Engineering - Nhập môn Công nghệ phn mm
Software Engineering Department - SoICT/HUST Trang 19 / 19
Phần II: Bài tập tự làm
Bài 1.3
Tiếp tục bài trước, hãy tạo 1 form cha Username, User-email. Sau khi ngưi dù ng
nhập và ấn OK, hãy hiển th tên username và tên user-email.
Em hãy giải thích cơ chế hoạt động t khi người dùng điền thông tin vào form và submit
form đến khi tr v kết qu.
HT
Nhp môn Công nghệ phn mm - Introduction to Software Engineering
Software Engineering Department - SoICT/HUST Trang 1 / 11
Lab 02
Mô hình kiến trúc MVC trong phát triển ng dng web
Mc tiêu
- To ng dng web đơn giản dùng MVC design pattern
- Biết các thành phần nào trong web application tương ng với thành phần Model,
View, Control trong kiến trúc MVC
Phần I Bài tp step by step
Bài 1.1:
To một web application đơn giản theo kiến trúc MVC. ng dụng này cho phép chúng ta
tạo trang login đơn giản dùng JSP – Servlet.
Step 1: Open Netbeans -> Projects -> New Project -> Web Application
| 1/51