⑴ 如何正確地查看源代碼
一。先把源代碼安裝起來編譯起來,結合它的文檔和手冊,熟悉其功能和它的應用方式。如果遇到的是英文文檔,那麼首先恭喜你,如果硬著頭皮看下來,不僅能在國內開此系統或框架的先河,而且能讓你閱讀英文的水平大幅提升。
二。瀏覽源代碼的目錄結構,了解各個目錄的功能。從整體上觀察這個工程是有哪些模塊組成的,最好能畫一畫圖。
三。經過以上兩步後你對這份源代碼有了一個初步的了解了,現在開始分析它的源碼吧。這一步我們開始分析源代碼框架。例如入口方式是單入口還是多入口,頁面之間的調用規則,能根據規則找出某個功能用到的頁面。
四。熟悉源代碼的代碼寫作風格,例如縮進方式,排版格式,變數命名,函數命名等。
五。熟悉一下源代碼用到的資料庫和表,可以參考它的技術支持文檔。
六。經過以上幾步相信已經對源代碼有了更深刻的了解,不過這種了解還只是表面的,下來我們從7個方面具體的去分析它吧:
1.入口構造以及頁面調用方式的具體實現,如果閱讀時看到工具類和工具函數,盡量去熟悉一下。這一步的分析可以學習到源代碼的系統架構方式。
2.分析源代碼用到的工具類和工具函數,這樣可以學到很多程序編寫技巧。可以提升自己編程功力。
3.結合一些安全規則,研究這個源代碼是怎樣實現安全方面的設計的。這樣可以提高自己在安全方面的意識和功力。
4.如果有模板引擎的話,研究一下源代碼的模板引擎。大致從實現方式,效率,易用性等幾個方面去考慮。
5.研究系統的各個功能模塊,這樣既能學習編程技巧還能打開自己的編程思路,下次遇到類似的東東就心裡有譜了。
6.研究系統所用到設計模式,一樣的功能實現,用到的設計模式可能相差很多,對比我們之前所作的東東分析設計模式,是提升我們駕馭代碼的不二法門。
7.研究源代碼對訪問壓力,執行效率,系統效率,資料庫查詢的優化。
七。做筆記,把這個開源代碼實現的功能,實現方式、設計框架、模塊組織、以及代碼技巧等記錄下來。邊記錄邊總結整理,對學習的東西更容易消化吸收。
八。實踐是檢驗真理的唯一標准,修改一些比較簡單地功能,或者寫一些簡單的sample,並且調試出來,這樣才能做到更加理解代碼。同時框架性的源代碼里一般都有自帶的實例,修改使用這些實例,可以快速了解框架的使用。
⑵ 怎麼去看框架源代碼
查看框架原代碼,你可以去下載源代碼的壓縮包,再把這個包放到你程序關聯的包上面。 forexample:如果你用的是eclipse的話,假設你工程裡面用到了spring-2.0.6.jar則你在這個jar上點擊右鍵,點屬性,這時在出來的上面有一個java source attachment,你選擇後面external file 把你從官網上下載的包關聯進來,就ok了,這樣你就可以從用到spring源碼的地方直接點進來看spring的源碼了,或者你直接點jar文件的目錄,一樣可以看spring的源碼。
⑶ 怎麼用查看網頁的源代碼
頁面上右鍵然後點擊查看網頁源代碼 但是可以明確的告訴你 看不出來什麼的 因為很多網站都是打包了放在伺服器上的 所以就導致你看到的源碼並不是全的 特別是現在都是框架開發 所以看到的代碼都是打包後的代碼
⑷ 如何查看用框架做的網頁源碼
1、查看帶有框架(Frame)的網頁源碼
如果有的網頁中使用了框架(Frame),或者使用了多窗口,那麼利用IE菜單上的命令就只能得到框架設置的源碼,因此無法查看網頁設計的細節。
此時久需要變通一下方法。將滑鼠指針移到網頁中非鏈接的位置,單擊滑鼠右鍵,在彈出的窗口中選擇「查看源文件」功能。需要查看哪個窗口的源文件,就將滑鼠指針指向哪個窗口,再通過點擊右鍵菜單來進行操作。
2、使用特殊的命令
其實,最簡單的方法大概是利用命令了。它的格式為: view-source:http://*.*.*,此時,網頁不會顯示,卻會出現一個顯示網頁源碼的文本框。
對於帶有框架的網頁,可以首先找到框架內某個感興趣的網頁名稱,然後再通過該命令查看框架內的網頁源碼。
3、利用網頁編輯器
上面的方法固然有用,但是,有的網頁保密工作做的非常周全,首先它使用了多窗口的Frame頁,讓IE菜單上的源碼查看功能不能發揮作用,接著它又將滑鼠的右鍵屏蔽了,這時可以考慮使用網頁編輯器來查看網頁源碼。
⑸ 有框架的網頁,如何讀取框架里的源碼
用chtmlview打帶框架網頁寫面函數
BOOL CHtmlView::GetFrameSource( IDispatch *pDisp, CString& refString )
{
BOOL bRetVal = FALSE;
HRESULT hr = S_OK;
if ( pDisp != NULL )
{
CComQIPtr pBrowser = pDisp;
if ( pBrowser != NULL )
{
IDispatch *pDispDoc = NULL;
hr = pBrowser->get_Document(&pDispDoc);
if ( !( FAILED(hr) || !pDisp ) )
{
CComQIPtr pStmInit = pDisp;
if ( !pStmInit )
{
HGLOBAL hMemory;
hMemory = GlobalAlloc(GMEM_MOVEABLE, 0);
if (hMemory != NULL)
{
CComQIPtr spPSI = pDispDoc;
if( spPSI != NULL)
{
CComPtr spStream;
if (SUCCEEDED(CreateStreamOnHGlobal(hMemory, TRUE, &spStream)))
{
spPSI->Save(spStream, FALSE);
LPCTSTR pstr = (LPCTSTR) GlobalLock(hMemory);
if (pstr != NULL)
{
// Stream is always ANSI, but CString
// assignment operator will convert implicitly.
bRetVal = TRUE;
TRY
{
refString = pstr;
}
CATCH_ALL(e)
{
bRetVal = FALSE;
DELETE_EXCEPTION(e);
}
END_CATCH_ALL
if(bRetVal == FALSE)
GlobalFree(hMemory);
else
GlobalUnlock(hMemory);
}
}
}
}
}
}
RELEASE(pDispDoc);
}
}
return bRetVal;
}
能用DocumentComplete我知道獲pDisp像DocumentComplete才能獲框架各頁pDisp沒通用性我想要實現像GetSource功能要網頁載完畢任意刻獲框架html源文件!
⑹ 如何查看JDK以及JAVA框架的源碼
設置步驟如下:
1.點「window」-> "Preferences" -> "Java" -> "Installed JRES"
2.此時"Installed JRES"右邊是列表窗格,列出了系統中的 JRE 環境,選擇你的JRE,然後點邊上的 "Edit...", 會出現一個窗口(Edit JRE)
3.選中rt.jar文件的這一項:「c:\program files\java\jre_1.5.0_06\lib\rt.jar」
點 左邊的「+」 號展開它,
4.展開後,可以看到「Source Attachment:(none)」,點這一項,點右邊的按鈕「Source Attachment...」, 選擇你的JDK目錄下的 「src.zip」文件(該文件在JDK安裝目錄的根目錄下)
5.一路點"ok",設置完成
設置完成後,按住ctrl鍵再用滑鼠單擊某一個jdk方法名或類名,便能看到該方法的源代碼了。此外按F3也能實現。
PS:rt.jar包含了jdk的基礎類庫,也就是你在java doc裡面看到的所有的類的class文件;src.zip文件裡面放著的正是基本類所對應的源文件(即*.java格式的文件);同理,我們可以去網上下載各個JAVA開源框架所對應的源代碼包,比如spring-src.zip,然後再按照上面的設置步驟設置,就可以查看到對應的JAVA框架源代碼了。
⑺ java項目中怎樣看使用的是什麼框架啊
1、首先使用開發工具打開以前練手的項目,如下圖所示。
⑻ android 怎麼看framework層源碼
查看函數的調用樹,變數的數據流。第二種是藉助 debug 工具或者 log 日誌在代碼動態執行的過程中查看程序的執行情況。
在 android studio 中使用 alt + f7,可以快速查看某個符號被使用的位置,包括函數名、欄位名、變數名等等,還可以快速查看到該函數的調用樹,變數的數據流
如果代碼執行邏輯我們自己可控制,在我們可以控制的地方添加 log 列印,可以很快檢測該分支邏輯執行情況;如果代碼不是我們自己可以控制的,就只能使用 debug 調試查看代碼分支的執行起情況了
在 debug 的時候使用跳轉到函數的內部,可以追蹤到 framework 層源碼的執行邏輯
在 debug 的時候可以看到函數的調用棧,能夠一下子就明白在這種場景下,該函數在
⑼ Myeclipse下如何查看Spring等框架的源代碼
1.下載jad.exe與jadclipse_3.2.0.jar(本地址資源中心中提供);2.將jad.exe可以存放任意目錄,比如C:jad.exe;3.將jadclipse_3.2.0.jar放到${eclipse}/plugins目錄下,並解壓到當前目錄下,目錄為${eclipse}/plugins/jadclipse_3.2.0;4.打開Myeclipse進行分別設置:選項Windows--Preference--Java-JadClipse下設置Path to decompiler為:C:jad.exe選項Windows--Preference--General--Editor--File Associations下設置File types為*.class的默認打開格式為JadClipse Class File Viewer我是按上面步驟做的,(MyEclipse 6.5)卻什麼也出不來,是不是我的方法不對? 回答: 你上面的步驟是正確的。我在Myeclipse 5.5上用jadclipse_3.2.0.jar同樣的手順已經取到了源代碼。我覺得你用的jadclipse_3.2.0.jar 應該是和你的Eclipe版本不符,低了。我在Myeclipse 7.0 用net.sf.jadclipse_3.3.0.jar 取到了。若換成3.2.0 就不行,出ERROR。
⑽ google chrome瀏覽器中 查看框架的源代碼,具體是干什麼用的,為什麼有些網頁有這個選項,有些沒有。
之所以有些網頁有、有些網頁沒有,那是因為不同網頁編寫的代碼會不同(具體哪裡不同我就不懂了),能夠識別出框架源代碼的網頁,就自然會出現「查看框架的源代碼」選項,反之則沒有。
之所以你看到只有Chrome瀏覽器上有這種開發工具,是因為目前只有Chrome瀏覽器的開發工具是最全的,其他瀏覽器(比如火狐),也有自己的開發工具,但是種類至少目前還沒有比Chrome齊全。
具體功能是查看以及編輯網頁java或.net代碼,但是這種開發工具十分強大,具備強大的運算能力,絕不是普通瀏覽器「查看網頁源代碼」這么低門檻的。
和其他瀏覽器的區別?這個外行看熱鬧,內行看門道。各個瀏覽器廠家都推出了自家的網頁開發工具,所以只有開發人員才切身知道它的強大之處和彼此區別;對於一般人其實因為都沒用,所以比不比較之間的區別,其實已經沒意義了。。追問:
正常情況下,有些網站是訪問者就能看框架源代碼的,是不是,可以說,從某種情況來說,也泄露了,網站的源碼。如,下面的語句:
function WebForm_CallbackComplete() { for (var i = 0; i < __pendingCallbacks.length; i++) { callbackObject = __pendingCallbacks[i]; if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) { if (!__pendingCallbacks[i].async) { __synchronousCallBackIndex = -1; } __pendingCallbacks[i] = null; var callbackFrameID = "__CALLBACKFRAME" + i; var xmlRequestFrame = document.getElementById(callbackFrameID); if (xmlRequestFrame) { xmlRequestFrame.parentNode.removeChild(xmlRequestFrame); } WebForm_ExecuteCallback(callbackObject); } }}function WebForm_ExecuteCallback(callbackObject) { var response = callbackObject.xmlRequest.responseText; if (response.charAt(0) == "s") { if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) { callbackObject.eventCallback(response.substring(1), callbackObject.context); } } else if (response.charAt(0) == "e") { if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) { callbackObject.errorCallback(response.substring(1), callbackObject.context); } } else { var separatorIndex = response.indexOf("|"); if (separatorIndex != -1) { var validationFieldLength = parseInt(response.substring(0, separatorIndex));
if (callbackObject && callbackObje此處省去一萬字
這些都被看到了,萬一被壞人利用,確實會產生安全隱患,比如依據這些代碼的漏洞虛構出仿冒網站。。這是該網站管理者編寫時的疏忽,或者對框架語言欠考慮造成的,是不太應該的。所以你的猜測也不無道理,我同意你的觀點。