Eclipse使用(十三)—— 在Eclipse上使用Debug模式啓動進行斷點調試(新手教程)

        最近有不少初學JavaWeb的同學在網上找我解決一些問題,我大概看了一下他們的問題,其實都是一些很簡單的問題,但由於缺乏解決問題的方法,導致遲遲找不到問題的原因。今天就在這裏給初學者介紹一種尋找程序問題的最簡單方法——斷點調試。

        什麼是斷點調試?簡單來說,就是我們在Debug模式下運行程序,然後在希望調試的地方打一個斷點,當程序執行到這裏時就會暫停執行,此時程序的執行就由用戶來控制,用戶通過觀察程序的一步步執行產生的變量結果,來判斷當前程序的問題所在。之所以叫斷點調試,是因爲它跟操作系統的中斷機制有關,涉及到變量的入棧和出棧操作。當然,今天我們不講這麼深,有興趣的可以深入研究一下。

目錄

注:對JavaWeb項目比較熟悉的可以直接看第二部分

一、使用Eclipse建一個簡單的用於Debug模式的JavaWeb項目

1、創建一個JavaWeb項目

2、項目結構預覽

3、DebugService.java

4、DebugServlet.java

5、index.jsp

6、success.jsp

二、使用debug模式啓動DebugDemo項目並進行斷點調試

1、使用debug模式啓動項目

2、基本用法和快捷鍵介紹

3、使用實例


一、使用Eclipse建一個簡單的用於Debug模式的JavaWeb項目

1、創建一個JavaWeb項目

New → Other(或者直接使用快捷鍵Ctrl+N),之後進入如下頁面,選擇Web → Dynamic Web Project

選擇下一步之後,進入到創建項目頁面,直接填寫項目名並選擇配置的Tomcat服務器,直接完成即可,不用點下一步

如果不知道怎麼配置Tomcat可以參考:Eclipse使用(五)—— 在Eclipse中配置Tomcat服務器

2、項目結構預覽

此項目中總共有四個文件,分別如下

DebugService.java文件:裏面只有一個判斷兩個數誰最大的方法

DebugServlet.java文件:用於處理HTTP請求,並調用DebugService類中的方法,以及跳轉頁面

index.jsp文件:首頁,裏面只有一個請求到DebugServlet的超鏈接

success.jsp文件:請求成功後的跳轉頁面

3、DebugService.java

此文件在src/com/mengfei/service包中

package com.mengfei.service;

public class DebugService {
	
	public int getMaxNum(int a, int b) {
		int temp;
		if(a > b) {
			temp = a;
		}else {
			temp = b;
		}
		return temp;
	}
}

4、DebugServlet.java

此文件在src/com/mengfei/servlet包中

package com.mengfei.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mengfei.service.DebugService;

@WebServlet("/debugServlet")
public class DebugServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		String param1 = request.getParameter("a");
		String param2 = request.getParameter("b");
		int a = -1, b = -1;
		if(null != param1 && !"".equals(param1)) {
			a = Integer.valueOf(param1);
		}
		if(null != param2 && !"".equals(param2)) {
			b = Integer.valueOf(param2);
		}
		
		DebugService ds = new DebugService();
		int maxNum = ds.getMaxNum(a, b);
		request.setAttribute("maxNum", maxNum);
		request.getRequestDispatcher("success.jsp").forward(request, response);
	}
}

5、index.jsp

此文件在WebContent目錄下

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="debugServlet?a=10&b=5">點擊獲取最大值</a>
</body>
</html>

6、success.jsp

此文件也在WebContent目錄下

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
最大值是:${maxNum}
</body>
</html>

二、使用debug模式啓動DebugDemo項目並進行斷點調試

1、使用debug模式啓動項目

如果不知道怎麼將項目添加到Tomcat中啓動運行的可以參考:Eclipse使用(六)—— 使用Eclipse創建JavaWeb項目

2、基本用法和快捷鍵介紹

F6執行下一步

F7中斷當前斷點調試進入下一個斷點

F8停止當前斷點的調試進入下一個斷點(比較常用)

打斷點:在可執行的程序語句左側雙擊會出現一個圓點,這就是斷點,再次雙擊可取消斷點

3、使用實例

我們分別在Servlet和Service中打一個斷點,如下:

然後用瀏覽器訪問首頁,點擊超鏈接

此時會請求到Servlet,我們切換到Eclipse會發現彈出了一個頁面,此時選擇是和否都可以,我一般習慣選擇否,如下:

選擇否之後,在打斷點的那一行左側會出現一個光標,當前程序行也會高亮顯示

此時我們按F6就可以追蹤程序的執行過程,以及在執行過程中變量的變化,查看變量的變化只需要將光標移到變量上方即可

這裏我們按F8,即停止當前斷點的調試,進入下一個斷點的調試,程序會執行到Service

至此,斷點調試教程結束!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章