Top Banner
17

03. J2EE-Servlet-Form-Data-2.0.1

Dec 27, 2015

Download

Documents

Hoavo Khuyet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 03. J2EE-Servlet-Form-Data-2.0.1
Page 2: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Nội dung trình bày

Form Data

Servlet đọc dữ liệu gửi từ Form Data

Serlvet lọc các ký tự đặc biệt

Xây dựng một số chức năng cho BookOnline với Servlet

– Đăng nhập

– Đăng ký

– Tìm kiếm sách theo tiêu chí sau tên sách, giá từ, giá

đến

– Xem chi tiết thông tin sách

2

Page 3: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Form Data

Được sử dụng để nhận dữ liệu input từ client và gởi

dữ liệu đến trang web khác như servlet, php,

aspx,cgi,… xử lý.

Thẻ form được sử dụng để chứa các thành phần khác

của form nhưng quan trọng nhất là các thẻ input như

– Text field, Password field

– Drop down list (combo box)

– Radio button, Checkbox

– Submit button

– …

3

Page 4: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Form Data

4

Page 5: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Form Data

Hai cơ chế Request thông dụng nhất từ Client

– HTTP GET và HTTP POST

HTTP GET Request

– Thông tin gửi đính kèm vào cuối URL

– Dữ liệu gửi bị giới hạn

• ../XemSanPham?id=S001&Trang=1

HTTP POST Request

– Thông tin gửi xem như dữ liệu (không đính kèm vào

URL)

– Không giới hạn dung lượng gửi

5

Page 6: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Form Data – GET/POST

6

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<!—HTTP GET-->

http://localhost/Web1/ServletSample?name1=value1& . . .

<form id="form1" name="form1"

method="get" action="ServletSample">

<!--Các thành thành của form-->

</form>

<!—HTTP POST-->

http://localhost/Web1/ServletSample

<form id="form1" name="form1"

method="post" action="ServletSample">

<!--Các thành thành của form-->

</form>

Page 7: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Servlet đọc dữ liệu từ Form Data

String str=request.getParameter(“nameInput”)

– Lấy giá trị đầu tiên của nameInput trong query string

– Sử dụng cho cả Form GET và Form POST

– Return null nếu nameInput trong tồn tại trong query string

String []s=request.getParameterValues(“NameInput”)

– Lấy tất cả giá trị của nameInput trong query string

– Sử dụng cho cả Form GET và Form POST

– Return null nếu nameInput trong tồn tại trong query string

Map<String, String[]> m = request.getParameterMap(),

Enumeration<String> e = request.getParameterNames()

– Return Map hoặc Enumeration các tham số request

– Thường sử dụng để debug

7

Page 8: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Servlet lọc các ký tự đặc biệt

8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public class ServletHelper {

public static String filter(String input) {

StringBuilder filtered =

new StringBuilder(input.length());

char c;

for (int i = 0; i < input.length(); i++) {

c = input.charAt(i);

switch (c) {

case '<': filtered.append("&lt;");break;

case '>': filtered.append("&gt;");break;

case '"': filtered.append("&quot;");break;

case '&': filtered.append("&amp;"); break;

default: filtered.append(c);

}

}

return (filtered.toString());

}

}

Page 9: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Servlet lọc các ký tự đặc biệt

9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

protected void processRequest(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

try {

out.println("<html><head>");

out.println("<title>Tìm kiếm sách</title>");

out.println("</head><body>");

String tenSach=request.getParameter("tbTenSach");

out.println("<p>Tên sách:"+ServletHelper.filter(tenSach)+"</p>");

String giaTu=request.getParameter("tbGiaTu");

out.println("<p>Giá từ:"+ServletHelper.filter(giaTu)+"</p>");

String giaDen=request.getParameter("tbGiaDen");

out.println("<p>Giá đến:"+ServletHelper.filter(giaDen)+"</p>");

out.println("</body></html>");

} finally {

out.close();

}

}

Page 10: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Ví dụ minh họa

Xây dựng website BookOnline với các trang web sau

– Trang đăng nhập

– Trang đăng ký

– Trang tìm kiếm nhanh

– Trang tìm kiếm nâng cao

10

Page 11: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012 11

Page 12: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012 12

Page 13: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012 13

Page 14: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012 14

Page 15: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012 15

Servlet Form Data

Page 16: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

Tài liệu tham khảo

Nguyễn Hoàng Anh, Tập bài giảng môn chuyên đề

Java, 2011

Marty Hall, Tập bài giảng J2EE, 2010

16

Page 17: 03. J2EE-Servlet-Form-Data-2.0.1

Nguyễn Hoàng Anh – [email protected] – ĐH KHTN - 2012

HỎI VÀ ĐÁP

17