原因: META-INF/context.xml 資料源配置錯誤或 JNDI 名稱引用失敗。
解決: 檢查 context.xml <Resource> 標籤 name 屬性與程式碼 lookup 名稱一致,標籤名稱只能是 context。
現象: response.sendRedirect() 後緩衝區已刷新無法清除。
解決方案:
sendRedirect 後加 return 結束處理./a.jsp<%@ page buffer="10kb" %> (預設 8kb)原因: 同時匯入 java.sql.* 與 java.util.*,兩者皆有 Date 類別。
解決: 使用完整類別名稱 java.util.Date today = new Date(); 或調整 import 順序/移除多餘 import。
MySQL 插入亂碼:
// 連接字串加編碼參數
String url = "jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8";
// 插入前轉碼
new String(request.getParameter("param").getBytes("ISO8859-1"), "UTF-8");
頁面表單提交亂碼:
<input type="hidden" name="action" value="1">document.getElementById("hide").value = num;<%@ page pageEncoding="utf-8" %>
<%@ page contentType="text/html;charset=utf-8" %>
<% request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); %>
錯誤寫法: <textarea value="<%=bean.getContent()%>"></textarea>
正確寫法: 內容放在標籤內部:
<textarea name="contents"><%=bean.getContents()%></textarea>
PreparedStatement 防注入與編碼問題