補充:至于不在異常塊里,可能你的catch里沒有匹配的異常類;
創(chuàng)新互聯(lián)建站是一家專業(yè)提供宜豐企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務。10年已為宜豐眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
System.out.println("從數(shù)據(jù)庫中讀出userJSON"+j.toString());//不執(zhí)行
這句里出現(xiàn)異常,有可能j的引用不存在,為null,你可以這樣調(diào)試下:
try {
System.out.println("從數(shù)據(jù)庫中讀出userJSON"+j.toString());//不執(zhí)行
} catch (Exception e){
System.out.println(e.getMessage);
}
Java程序的運行過程(執(zhí)行流程)分析
1、編寫:是指在 Java 開發(fā)環(huán)境中進行程序代碼的輸入,最終形成后綴名為 .java 的 Java 源文件。
2、編譯:是指使用 Java 編譯器對源文件進行錯誤排査的過程,編譯后將生成后綴名為 .class 的字節(jié)碼文件,不像C語言那樣生成可執(zhí)行文件。
3、運行:是指使用 Java 解釋器將字節(jié)碼文件翻譯成機器代碼,執(zhí)行并顯示結(jié)果。
字節(jié)碼文件是一種和任何具體機器環(huán)境及操作系統(tǒng)環(huán)境無關(guān)的中間代碼。它是一種二進制文件,是 Java 源文件由 Java 編譯器編譯后生成的目標代碼文件。編程人員和計算機都無法直接讀懂字節(jié)碼文件,它必須由專用的 Java 解釋器來解釋執(zhí)行,因此 Java 是一種在編譯基礎(chǔ)上進行解釋運行的語言。
Java 解釋器負責將字節(jié)碼文件翻譯成具體硬件環(huán)境和操作系統(tǒng)平臺下的機器代碼,以便執(zhí)行。因此 Java 程序不能直接運行在現(xiàn)有的操作系統(tǒng)平臺上,它必須運行在被稱為 Java 虛擬機的軟件平臺之上。
Java 虛擬機(JVM)是運行 Java 程序的軟件環(huán)境,Java 解釋器是 Java 虛擬機的一部分。在運行 Java 程序時,首先會啟動 JVM,然后由它來負責解釋執(zhí)行 Java 的字節(jié)碼程序,并且 Java 字節(jié)碼程序只能運行于 JVM 之上。這樣利用 JVM 就可以把 Java 字節(jié)碼程序和具體的硬件平臺以及操作系統(tǒng)環(huán)境分隔開來,只要在不同的計算機上安裝了針對特定平臺的 JVM,Java 程序就可以運行,而不用考慮當前具體的硬件平臺及操作系統(tǒng)環(huán)境,也不用考慮字節(jié)碼文件是在何種平臺上生成的。
JVM 把這種不同軟、硬件平臺的具體差別隱藏起來,從而實現(xiàn)了真正的二進制代碼級的跨平臺移植。JVM 是 Java 平臺架構(gòu)的基礎(chǔ),Java 的跨平臺特性正是通過在 JVM 中運行 Java 程序?qū)崿F(xiàn)的。Java 的這種運行機制可以通過下圖來說明。
Java 語言這種“一次編寫,到處運行”的方式,有效地解決了目前大多數(shù)高級程序設(shè)計語言需要針對不同系統(tǒng)來編譯產(chǎn)生不同機器代碼的問題,即硬件環(huán)境和操作平臺的異構(gòu)問題,大大降低了程序開發(fā)、維護和管理的開銷。
提示:Java 程序通過 JVM 可以實現(xiàn)跨平臺特性,但 JVM 是不跨平臺的。也就是說,不同操作系統(tǒng)之上的 JVM 是不同的,Windows 平臺之上的 JVM 不能用在 Linux 平臺,反之亦然。
可能是亂碼問題
1 改form表單的提交方式 mothed="post"
2 在String username=request.getParameter("username");
上面寫一行代碼 request.setCharacterEncoding("GBK");
設(shè)置請求頁面編碼為中文