Tải bản đầy đủ (.pdf) (71 trang)

BÀI TẬP THỰC HÀNH JAVA CÓ HƯỚNG DẪN

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 (3.48 MB, 71 trang )

1

Module/môn: Lập trình Java 4

Số hiệu assignment: 1/1

Người điều phối của FPT Polytechnic:

Ngày ban hành:

% điểm: 60%

Bài assignment này đòi hỏi sinh viên phải dùng khoảng 35h làm để hoàn thành
Tương ứng với mục tiêu môn học:

Gian lận là hình thức lấy bài làm của người khác và sử dụng như là mình làm ra. Hình thức đó
bao gồm những hành động như: copy thông tin trực tiếp từ trang web hay sách mà không ghi rõ
nguồn tham khảo trong tài liệu; gửi bài assignment làm chung như là thành quả cá nhân; copy bài
assignment của các sinh viên khác cùng khóa hay khác khóa; ăn trộm hay mua bài assignment
của ai đó và gửi lên như là sản phẩm mình làm ra. Những sinh viên bị nghi ngờ gian lận sẽ bị điều
tra và nếu phát hiện là có gian lận thì sẽ phải chịu các mức phạt theo quy định của Nhà trường.
Mọi tài nguyên copy hay điều chế từ bất cứ nguồn nào (VD: Internet, sách) phải được đặt
trong cặp dấu nháy kép và in nghiêng, với thông tin tham khảo đầy đủ về nguồn tài liệu.
Bài làm của bạn sẽ được đưa vào phần mềm kiểm tra gian lận. Mọi hình thức cố tình đánh
lừa hệ thống phát hiện gian lận sẽ bị coi là Vi phạm quy định thi cử.

Quy định nộp bài assignment








Một bản mềm kết quả bài làm assignment của bạn phải được upload trước nửa đêm (giờ
địa phương) vào ngày hạn nộp. Quá hạn nộp hệ thống sẽ khóa lại và sinh viên không còn
quyền nộp bài.
Phiên bản upload lên cuối cùng sẽ được chấm điểm. Sinh viên có quyền upload đè file
nhiều lần trước khi hết hạn nộp.
Tất cả những file tài liệu văn bản phải để ở dạng file gốc chứ không file dạng file được
xuất ra từ định dạng khác (ví dụ pdf được xuất từ doc). Không được gửi tài liệu văn bản
dưới dạng ảnh chụp.
Đối với bài assignment này bạn cũng phải đưa các bằng chứng hay sản phẩm khác vào
trong file nén dạng zip.
Kích thước file cần tuân thủ theo giới hạn trên hệ thống nộp bài (thông thường là <50M).
Hãy đảm bảo các file được upload lên không bị nhiễm virus (điều này có thể dẫn đến file
bị hệ thống xóa mất) và không đặt mật khẩu mở file. Nếu vi phạm những điều này, bài
coi như chưa được nộp.

SOF301 – Lập trình Java 4

Assignment


2




Hãy chú ý xem thông báo sau khi upload để chắc chắn bài của bạn đã được nộp lên hệ
thống chưa.

Bạn không phải gửi lại file đề bài của assignment (file này).

Quy định đánh giá bài assignment
1. Sinh viên không có bài assignment trên hệ thống sẽ bị 0 điểm bài assignment.
2. Sau hạn nộp bài một tuần, sinh viên nộp muộn có quyền nộp đơn kiến nghị xin được chấp
nhận gia hạn nộp. Hội đồng Nhà trường sẽ xét duyệt từng trường hợp. Nếu kiến nghị
không được chấp nhận, bài giữ nguyên điểm 0. Nếu quá một tuần không có kiến nghị thì
bài cũng sinh viên không nộp mặc nhiên nhận điểm 0.
3. Ngay cả trường hợp bài của sinh viên bị phát hiện gian lận sau khi có điểm, sinh viên sẽ
không được công nhận bài đó và chịu mức kỷ luật như quy định của Nhà trường.
========================

Assignment
Lập trình JAVA – Thiết kế bán hàng
Mục tiêu cụ thể

Sau bài assignment này , sinh viên cần đặt được:
- Thành thạo thiết kế web theo mô hình MVC 2, trong đó
o Model: Hibernate
o View: JSP
o Controler: Servlet

Các công cụ cần có

Tài nguyên

-

Jdk
NetBean

Eclipse
MS SQL server 2008 hoặc MySQL

Thư mục tài nguyên đi kèm

ĐẶT VẤN ĐỀ
Hiện nay các mô hình kinh doanh qua hệ thống e-commerce ngày càng đa dạng. Từ thực
tế đó, ứng dụng web tự động hóa quá trình quản lý và bán hàng trực tuyến được thiết kế
để phù hợp với mọi cửa hàng nhỏ và vừa ra đời. Một cửa hàng bán sản phẩm điện thoại
hoàn toàn có thể thay thế bằng một website mà ở đó mọi người có thể mua bất cứ sản
phẩm điện thoại yêu thích ngay cả khi ngồi ở nhà hoặc nơi làm việc

YÊU CẦU
Ứng dụng cần đáp ứng được những chức năng cơ bản sau:
- Chức năng giỏ hàng:
o Khách hàng ghé thăm website có thể tìm kiếm mặt hàng mình thích
o Khách hàng có thể thêm, xóa, cập nhật những mặt hàng họ muốn mua

SOF301 – Lập trình Java 4

Assignment


3

-

Chức năng quản lý thành viên
o Người quản lý có thể thêm một thành viên, sửa thông tin của thành viên, xóa một
thành viên

Chức năng quản lý sản phẩm
o Người quản lý có thể thêm một sản phẩm mới, cập nhật thông tin sản phẩm, xóa
sản phẩm

Y1. Thiết kế cơ sở dữ liệu
- Tạo CSDL
- Thiết kế các bảng ( Gợi ý: Products, Categories, Carts, Cart_detail, Customers)
- Nhập dữ liệu sẵn cho ứng dụng
o Ít nhất 15 sản phẩm, 2 danh mục
o Ít nhất 3 người dùng
Y2. Đáp ứng được các yêu cầu chức năng
- Đăng nhập hệ thống
- Thêm xóa sửa người dùng
- Thêm xóa sửa sản phẩm
- Thêm xóa sửa sản phẩm trong giỏ hàng
Y3. Những yêu cầu về hình thức sản phẩm
- Tạo template và layout đồng nhất cho ứng dụng
Y4. Những yêu cầu về truy vấn dữ liệu
- Sử dụng framework Hibernate
Y5. Những yêu cầu về báo cáo
- Đưa ra bản thiết kế CSDL, và giải thích cách thiết kế
- Giải thích cách thiết kế giao diện Web Form

MÔ TẢ SẢN PHẨM PHẢI NỘP
1. Thư mục BaoCao chứa file BaoCao.doc
2. Thư mục Source chứa toàn bộ ứng dụng
3. Thư mục Database chứa file database.sql chứa mã script tạo CSDL hoặc file .mdf và .ldf
của CSDL

THANG ĐÁNH GIÁ

-

Đáp ứng tất cả các yêu cầu

-

Đạt điểm tối đa 100% nếu có thêm chức năng

-

Thiếu Y5

A
70%‐100%)

B

SOF301 – Lập trình Java 4

Assignment


4

60%‐
69%
(đáp ứng phong
cách thiết kế)

-


Thiếu Y4

-

Không nộp đủ các sản phẩm được mô tả trong mục
Sản phẩm phải nộp

-

Ứng dụng không chạy

C
50%‐
59%

TRƯỢT
< 50%
(không đáp ứng
yêu cầu nộp bài)

SOF301 – Lập trình Java 4

Assignment


Bài 1. cài đặt Java EE với Eclipse và Tomcat Server.
Các phần mềm yêu cầu:

1.1.

-

JDK: />Eclipse : />Apache Tomcat: />
1.2.
-

Tiến hành cài đặt:
Sau khi cài đặt JDK chúng ta khai báo một số biến môi trường như sau:

Hình 1: Khai báo biến môi trường

SOF301 – Lập trình Java 4

Assignment


Hình 2 : Thêm biến môi trường

Hình 3: Khai báo biến môi trường JDK.
SOF301 – Lập trình Java 4

Assignment


JAVA_HOME : C:\Program Files\Java\jdk1.6.0_26 đường dẫn tới thư mục JDK vừa cài đặt ở
bước trước.
PATH : C:\Program Files\Java\jdk1.6.0_26\bin
CLASSPATH: C:\Program Files\Java\jdk1.6.0_26
Đối với Tomcat sau khi download gói zip từ website của apache về ta giải nén trên một
thư mục trên máy tính. Ta khai báo một số biến môi trường sau:


Hình 4: Khai báo biến môi trường cho Tomcat

Hình 5: Khai báo biến môi trường cho Tomcat
CATALINA_HOME và CATALIA_BASE: tới thư mục chứa file server tomcat vừa giải nén.
-

Thêm server vào eclipse:

SOF301 – Lập trình Java 4

Assignment


Hình 6: Thêm server Tomcat vào Eclipse.

Hình 7: Thêm server Tomcat vào Eclipse

SOF301 – Lập trình Java 4

Assignment


Hình 8: Thêm server Tomcat vào Eclipse

SOF301 – Lập trình Java 4

Assignment



Hình 9: khởi động server Tomcat trên Eclipse

Hình 10: Server Tomcat khi khởi động thành công

SOF301 – Lập trình Java 4

Assignment


Bài 2. Hướng dẫn cài đặt Java EE với Netbean và Glassfish
server.
2.1.
2.2.
-

Các phần mềm yêu cầu:
JDK: />Netbean: />Glassfish server: />Tiến hành các bước cài đặt JDK và khai báo biến môi trường như được hướng dẫn ở phần 1.
Đối với Netbean, trong gói cài đặt đã đi kèm Server Glassfish như hình bên dưới.

Hình 11: Glassfish đi kèm khi cài đặt Netbean
Trong trường hợp không có server Glassfish đi cùng, ta có thể thêm server bằng cách download từ
Website sau đó thực hiện theo hướng dẫn trong hình.

SOF301 – Lập trình Java 4

Assignment


Hình 12: Thêm Server mới.


Hình 14: Chọn thư mục khi download server về.

SOF301 – Lập trình Java 4

Assignment


Hình 15: Start server trên Netbean

SOF301 – Lập trình Java 4

Assignment


Hình 16: Màn hình khi Server start thành công.

Bài 3. Cấu hình file web.xml
Tạo file web.xml trong thư mục WEB-INF
Cấu hình web.xml để thực hiện những công việc sau:
-

Đăng ký một servlet và một jsp
Cấu hình file nào sẽ được mở ra đầu tiên khi ứng dụng web chạy

Ví dụ mẫu:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi=" />xmlns=" xmlns:web=" xsi:schemaLocation=" /> id="WebApp_ID" version="2.5">
<display-name>jspservlet-tutorial</display-name>
<servlet>
<servlet-name>HelloServlet</servlet-name>

<servlet-class>kr.co.actsone.tutorial.jspservlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

SOF301 – Lập trình Java 4

Assignment


Ứng dụng danh bạ điện thoại:
Viết một InputForm servlet để tạo một HTML form nhập để tra cứu danh bạ điện thoại.
Viết một SearchAccount servlet để tra cứu thông tin danh bạ.
Bài 1: Viết servlet InputForm

1. import javax.servlet.*; import javax.servlet.http.*;
2. import java.io.IOException;
3. public class InputForm extends HttpServlet {
4.
static final private String CONTENT_TYPE = "text/html";
5.
//Initialize global variables

6.
public void init() throws ServletException {
7.
// TO DO ...
8.
}
9.
public void doGet (HttpServletRequest request,
10.
HttpServletResponse
response)
11.
throws ServletException, IOException {
12.
13.
14.

}

}

// TO DO ...

1. //Process the HTTP Get request
2. public void doGet ( HttpServletRequest request,
HttpServletResponse response)
3.
throws ServletException, IOException {
4. response.setContentType(CONTENT_TYPE);
5. PrintWriter out = response.getWriter(); // Write to client

6. out.println(“<html><head><title>InputForm</title></head>");
7. out.println("<body>");
8. out.println("

Trang Web demo viec tra danh ba dien
thoai.

");
9. out.println("<form action=“searchaccount” method='post'>");
10.
out.println("Nhap ten thue bao: NAME=“ttbao">
");
11.
out.println("Nhap so dien thoai: NAME=“sodthoai”>
");
12.
out.println("Nhap dia chi: <INPUT NAME=“diachi”>
");
13.
out.println("");
14.
out.println("</form>"); out.println("</body></html>");
15.
}


<html>
<head><title>InputForm</title></head>
<body>

Trang Web demo viec tra danh ba dien thoai.


<form action=searchaccount method='post'>
Nhap ten thue bao : <input name='ttbao’ >

Nhap so dien thoai : <input name='sodthoai’ >

Nhap dia chi


: <input name='diachi’ >


<input type='submit' name='Submit' value='Bat dau tra'>
</form>
</body></html>
Bài 2: Viết servlet SearchAccount

1. import javax.servlet.*; import javax.servlet.http.*;
2. import java.io.*; import java.util.*; import java.sql.*;
3. public class SearchAccount extends HttpServlet {
4.
static final private String CONTENT_TYPE = "text/html";
5.
6.
// Process the HTTP Post request
7.
public void doPost (HttpServletRequest request,
8.
HttpServletResponse response)
9.
throws ServletException, IOException
10.
{
11.
// TODO…
12.
// Lay gia tri tu cac textbox tren InputForm
13.
}
14.

}


1. //Process the HTTP Post request
2. public void doPost (HttpServletRequest request, HttpServletResponse
response)
3.
throws ServletException, IOException {
4. response.setContentType(CONTENT_TYPE);
5. PrintWriter out = response.getWriter();
6. out.println("<html><head><title>SearchAccount</title></head>");
7. out.println("<body>

Ket qua tra dien thoai theo yeu cau cua ban
:

");
8. out.println("<table border=1 cellPadding=1 cellSpacing=1>");
9. String tentbao = request.getParameter("ttbao");
10.
// xay dung lenh SQL
11.
String newSQL = "SELECT * FROM CUSTOMER";
12.
if (tentbao != null && tentbao.length() != 0) {
13.
newSQL = newSQL + " where tentbao like '%" + tentbao + "%'";
14.
}
15.
String conStr = "jdbc:odbc:DanhBaDT";
16.
Statement stmt = null; ResultSet rs = null;
17.

……
1. try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
2.
con = DriverManager.getConnection(conStr, "", "");
3.
stmt = con.createStatement();
4.
rs = stmt.executeQuery(newSQL);
5.
6.
out.println("<tr><th>So thu tu</th><th>Ten thue bao</th><th>So dien” +
7.
“ thoai</th><th>Dia chi</th></tr>\n");
8.
if (rs != null) {
9.
for ( int i = 1; rs.next(); ) {
10.
out.println("<tr><td>" + i +"</td><td>" + rs.getString(2) +
11.
"</td><td>" + rs.getString(3) + "</td><td>" +
12.
rs.getString(4) + "</td></tr>\n");
13.
} // end for
14.
} // end if
15.
out.println("</table>");
16.

rs.close();
stmt.close();
con.close();
17.
} catch (Exception e) {
System.out.println("Error : " + e); }
18.

19.
} // End doPost()



1

Bài thực hành số 3
Mục tiêu
Hiểu cách sử dụng các thành phần cơ bản trong ngôn ngữ JSP
-

Expression
Scriptlet
Declaration

SOF301 – Ngôn ngữ lập trình Java 3

Lab 3


2


Bài 1 Tính toán trong JSP và hiển thị ra màn hình bằng Expression
<html>
<head>
<title>JSP expression tag example</title>
</head>
<body>
<%
int a=10;
int b=20;
int c=30;
%>
<%= a+b+c %>
</body>

</html>

Bài 2 Truyền giá trị giữa 2 trang JSP
Tạo trang index.jsp như sau:
<html>
<head>
<title> JSP expression tag example3 </title>
</head>
<body>
<% application.setAttribute("MyName", "Chaitanya"); %>
<a href="display.jsp">Click here for display</a>
</body>

</html>
Tạo trang display.jsp như sau:

<html>
<head>
<title>Display Page</title>
</head>
<body>
<%="This is a String" %>

<%= application.getAttribute("MyName") %>
</body>

</html>

SOF301 – Ngôn ngữ lập trình Java 3

Lab 3


3

Output

Bài 4: Declaration một biến
<html>
<head>
<title>Declaration tag Example1</title>
</head>
<body>
<%! String name="Chaitanya"; %>
<%! int age=27; %>
<%= "Name is: "+ name %>

<%= "AGE: "+ age %>

</body>

</html>
Output

SOF301 – Ngôn ngữ lập trình Java 3

Lab 3


4

Bài 4: Declaration một phương thức
<html>
<head>
<title>Methods Declaration</title>
</head>
<body>
<%!
int sum(int num1, int num2, int num3){
return num1+num2+num3;
}
%>
<%= "Result is: " + sum(10,40,50) %>
</body>

</html>
Output

Bài 5: Scriptlet

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.0 translation //EN">
< HTML>
<HEAD>
<TITLE> MY JSP PAGE </TITLE>

SOF301 – Ngôn ngữ lập trình Java 3

Lab 3


5

</HEAD>
<BODY>
<% if (num > 5) { %>
<H3> hi </H3>
<%} else {%>

num value should not be less than 6


<% } %>
</BODY>
< /HTML>
[/code]
Yêu cầu nộp bài
Cuối giờ thực hành, sinh viên tạo thư mục theo tên <Tên đăng nhập SV>_Lab3, chứa tất cả sản phẩm
của những bài lab trên, nén lại thành file zip và upload lên mục nộp bài tương ứng trên LMS.
Đánh giá bài lab
STT

Bài số


SOF301 – Ngôn ngữ lập trình Java 3

Điểm

Lab 3


1

Bài thực hành số 4
Mục tiêu
Hiểu cách sử dụng các thành phần cơ bản trong ngôn ngữ Java


Comment



Directive



Action



JSP include




JSP forward

SOF301 – Ngôn ngữ lập trình Java 3

Lab 4


2

Bài 1 Page Directive
Tạo trang import.jsp như sau
1.
2.
3.
4.
5.
6.
7.

<html>
<body>
<%@ page import="java.util.Date" %>
Today is: <%= new Date() %>
</body>

</html>
Tạo trang contentType.jsp như sau:
1.
2.
3.

4.
5.
6.
7.

<html>
<body>
<%@ page contentType=application/msword %>
Today is: <%= new java.util.Date() %>
</body>

</html>
Tạo trang ifError.jsp như sau:
1.
2.
3.
4.
5.
6.
7.
8.

<html>
<body>
<%@ page errorPage="myerrorpage.jsp" %>
<%= 100/0 %>
</body>

</html>
Tạo trang myerrorpage.jsp như sau

1.
2.
3.
4.
5.
6.
7.

<html>
<body>
<%@ page isErrorPage="true" %>
Sorry an exception occured!

The exception is: <%= exception %>

SOF301 – Ngôn ngữ lập trình Java 3

Lab 4


×