Ubuntu下JSP應用調試指南
確保系統已安裝JDK(建議OpenJDK 11及以上)和Tomcat(建議Tomcat 9及以上)。安裝命令如下:
sudo apt update
sudo apt install openjdk-11-jdk # 安裝JDK
sudo apt install tomcat9 tomcat9-admin # 安裝Tomcat
驗證安裝:
java -version # 檢查JDK版本
sudo systemctl status tomcat9 # 檢查Tomcat運行狀態(若未運行,用sudo systemctl start tomcat9啟動)
Tomcat日志是調試JSP問題的核心工具,日志文件位于/var/log/tomcat9/
目錄下。使用以下命令實時查看錯誤信息:
sudo tail -f /var/log/tomcat9/catalina.out
日志會記錄JSP編譯錯誤、運行時異常(如NullPointerException)、請求響應詳情等,是初步排查問題的關鍵。
Run > Edit Configurations
,選擇Tomcat Server > Local
,設置Tomcat安裝目錄(如/opt/tomcat
)和部署路徑(如/var/lib/tomcat9/webapps/your-app
)。Servers
視圖添加Tomcat服務器,關聯項目。Debug
按鈕),IDE會自動附加到Tomcat進程。http://localhost:8080/your-app/page.jsp
),程序會在斷點處暫停,可通過調試窗口逐步執行(Step Over/FInto)、查看變量值、分析調用棧。*.jsp.java
,位于Tomcat的work
目錄下,如/var/lib/tomcat9/work/Catalina/localhost/your-app/org/apache/jsp/page_jsp.java
)。jdb -sourcepath /var/lib/tomcat9/work/Catalina/localhost/your-app/org/apache/jsp -attach localhost:5005
stop at org.apache.jsp.page_jsp:20
),運行程序(run
),通過next
(單步執行)、print variable
(查看變量)調試。sudo jstack <Tomcat進程ID> > thread_dump.txt # 進程ID可通過ps -ef | grep tomcat獲取
sudo jmap -heap <Tomcat進程ID>
引入Log4j或SLF4J記錄關鍵信息,比System.out.println()
更靈活。
pom.xml
中添加):<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.7</version>
</dependency>
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Logger logger = LoggerFactory.getLogger(YourClass.class);
logger.debug("Variable value: {}", variable); // 輸出變量值
logger.error("Error occurred: ", exception); // 輸出異常堆棧
logback.xml
中設置<root level="DEBUG">
),將日志輸出到文件(如logs/app.log
)。Sources
> Overrides
,選擇本地文件夾(如~/debug-jsps
)。Sources
面板找到JSP文件,修改代碼后保存,刷新頁面即可看到修改效果(無需重啟Tomcat)。<%
、%>
標簽閉合)、正確使用JSTL標簽(需導入javax.servlet.jsp.jstl
庫)。WEB-INF/lib
目錄,避免類找不到錯誤。tomcat
)對應用目錄有讀取權限:sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps/your-app
sudo chmod -R 755 /var/lib/tomcat9/webapps/your-app