Sử dụng các kỹ thuật (khái niệm) gì để tạo một chức năng login trực tiếp trong một trang HTML sử dụng servlet để xử lý back-end?

Em có một trang web được thiết kế theo kiểu one page, giờ em đang tạo chức năng login cho trang web sử dụng java servlet.

Em muốn khi thông tin đăng nhập được gửi về cho web server thì sẽ được xử lý bình thường (Phần kiểm tra thông tin đăng nhập và kết nối database thì em làm được bằng JDBC), nhưng em không biết cách để gửi trả thông tin về cho client mà không cần sử dụng một web page khác (vì em tìm hiểu thì thấy khi server hồi đáp lại cho client thì thông tin hồi đáp là một web page).

Vậy cho em hỏi làm sao để sau khi đăng nhập thành công (dữ liệu input đã được web server kiểm tra) thì trang web vẫn là trang hiện tại chỉ hiển thị thêm một ô chứa thông tin người dùng (Phần ô chứa thông tin này em có thể thiết kế được).

Em cảm ơn nhiều ạ :smile:

Dùng AJAX(Fetch) gửi 1 request đăng nhập đến server, server trả về thông tin người dùng dưới dạng JSON/XML hoặc HTML, tùy vào đó mà dùng js thay đổi DOM cho phù hợp.
Cách này là low-level, còn mì ăn liền thì dùng combo react/redux/axios
vì em tìm hiểu thì thấy khi server hồi đáp lại cho client thì thông tin hồi đáp là một web page
=> nó trả về gì là do bạn ấy chứ :smile:
Mình ko rành java nhưng ví dụ bạn dùng Servlet thì bảo nó trả về json có gì khó đâu:
response.setContentType("application/json");

1 Like

Dạ cái response.setContentType thì em có biết, nhưng ý em là em thấy khi phản hồi lại thì cái phản hồi đó nó sẽ thay thế cho trang HTML hiện tại (giống kiểu mở một trang mới) :sweat_smile:

Tìm hiểu về AJAX nhé bạn. Nếu bạn muốn làm Single-Page-App mà chưa có khái niệm về AJAX thì mình thua :pensive:

1 Like

Em cảm ơn ạ, em giờ mới biết AJAX :joy:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?