在 JSP 開發中,有時需要頁面首次加載時自動向後端發送請求(即觸發 form action),而非等待用戶點擊提交按鈕。這可通過 JavaScript 自動提交表單或 AJAX 請求實現。
<form id="autoForm" action="YourServlet" method="post">
<input type="hidden" name="init" value="true" />
</form>
<script>
window.onload = function() {
document.getElementById('autoForm').submit();
};
</script>
缺點:頁面會發生跳轉/刷新,用戶體驗較差。
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
<script>
$(document).ready(function() {
$.post('YourServlet', {init: true}, function(response) {
// 處理返回數據,如填充表格、下拉框等
$('#resultContainer').html(response);
});
});
</script>
優點:無刷新加載數據,體驗流暢;可靈活處理 JSON、HTML 片段等響應。
<%@ include file="header.jsp" %>
<%
// 在 JSP 中直接調用業務邏輯獲取數據
List- list = ServiceFactory.getItemService().findAll();
request.setAttribute("itemList", list);
%>
<c:forEach items="${itemList}" var="item">
<option value="${item.id}">${item.name}</option>
</c:forEach>
適用於頁面首屏必須展示的數據,避免額外請求。
實際項目中常組合使用:首屏關鍵數據服務端渲染,二級數據 AJAX 按需加載。