Chào cả nhà, mặc dù em biết react thích hợp để code web CSR hoặc SSR (nextJS) nói chung kiểu như frontend với backend tách biệt hoàn toàn với nhau và giao tiếp với nhau thông qua API và authen bằng JWT. Nhưng em vẫn muốn kết hợp react với java JSP nên em gặp vấn đề là servlet truyền autribulte qua giao diện JSP bằng session và trang JSP dùng các cặp thẻ của các thư viện java vậy làm sao để react có thể đọc được dữ liệu đó để render bởi vì không có endpoint api nào cả để react có thể dùng useEffect để fetch data, và react cũng không thể tương tác với sesion của java servlet. Xin cảm ơn!
Kết hợp java JSP và react
bạn đặt câu hỏi này vì bạn chưa hiểu SSR là gì
Chữ R trong SSR là render, nhưng nó khác với render của react, render ở đây có nghĩa alf server trả về đủ mọi output cần thiết để client có thể thực hiện render sau khi nhận về response (là html…)
Điều này có nghĩa là dù là java hay là php hay là cái gì đó khác, nếu đã dùng cơ chế SSR thì sẽ không có cái như bạn muốn
Thật ra thì vẫn có một số cách ‘giống’ với bạn muốn. Ví dụ bạn dùng react như là một thư viện và để mọi thứ vào trong nội dung html trả về
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="like_button_container"></div>
<script>
const id = '<?php echo $id; ?>'; // đây là code trên backend
// const id = '12345'; // đây là sau khi backend 'render' ra, trả về cho trình duyệt của user
</script>
</body>
</html>
nếu bạn dùng npx create-react-app
, mọi thứ trên code của bạn chỉ là js, không có sự can thiệp nào vào nội dung js của bạn cả (giống như ở trên, nội dung của biến id được php đổ vào bằng cách chạy code php trước khi trả về cho client)
6 Likes