日韩精品亚洲精品中文字幕乱伦AV|曰韩区二区三区日韩中文字幕五码|ady99久久人人看人人摸人人|动漫一区二区黄99精品视频在线|AV片在线观看亚洲中文国产精品|伦乱在线VA欧美性爱一二区|亚洲无码mv91热色视频|激情六月综合欧美精品中文

當(dāng)前位置:首頁(yè) > 網(wǎng)站建設(shè) > 正文內(nèi)容

javaweb程序設(shè)計(jì)任務(wù)教程源代碼(java web程序設(shè)計(jì)任務(wù)教程源碼)

網(wǎng)站建設(shè)2年前 (2023-04-08)1084

本篇文章給大家談?wù)刯avaweb程序設(shè)計(jì)任務(wù)教程源代碼,以及java web程序設(shè)計(jì)任務(wù)教程源碼對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。

本文目錄一覽:

如何快速讀懂項(xiàng)目源碼javaWeb

一:學(xué)會(huì)如何讀一個(gè)JavaWeb項(xiàng)目源代碼 步驟:表結(jié)構(gòu)-web.xml-mvc-db-spring

ioc-log- 代碼

1、先了解項(xiàng)目數(shù)據(jù)庫(kù)的表結(jié)構(gòu),這個(gè)方面是最容易忘記 的,有時(shí)候我們只顧著看每一個(gè)方法是怎么進(jìn)行的,卻沒(méi)

有去了解數(shù)據(jù)庫(kù)之間的主外鍵關(guān)聯(lián)。其實(shí)如果先了解數(shù)據(jù) 庫(kù)表結(jié)構(gòu),再去看一個(gè)方法的實(shí)現(xiàn)會(huì)更加容易。

2、然后需要過(guò)一遍web.xml,知道項(xiàng)目中用到了什么攔

截器,監(jiān)聽(tīng)器,過(guò)濾器,擁有哪些配置文件。如果是攔截 器,一般負(fù)責(zé)過(guò)濾請(qǐng)求,進(jìn)行AOP 等;如果是監(jiān) 可能是定時(shí)任務(wù),初始化任務(wù);配置文件有如使用了 spring

后的讀取mvc 相關(guān),db 相關(guān),service 相關(guān),aop 相關(guān)的文件。

3、查看攔截器,監(jiān)聽(tīng)器代碼,知道攔截了什么請(qǐng)求,這

個(gè)類完成了怎樣的工作。有的人就是因?yàn)槿鄙倭诉@一步, 自己寫(xiě)了一個(gè)action,配置文件也沒(méi)有寫(xiě)錯(cuò),但是卻怎么

調(diào)試也無(wú)法進(jìn)入這個(gè)action,直到別人告訴他,請(qǐng)求被攔

4、接下來(lái),看配置文件,首先一定是mvc相關(guān)的,如 springmvc

中,要請(qǐng)求哪些請(qǐng)求是靜態(tài)資源,使用了哪些 view 策略,controller 注解放在哪個(gè)包下等。 然后是db 相關(guān)配置文件,看使用了什么數(shù)據(jù)庫(kù),使用了

什么orm框架,是否開(kāi)啟了二級(jí)緩存,使用哪種產(chǎn)品作 為二級(jí)緩存,事務(wù)管理的處理,需要掃描的實(shí)體類放在什 么位置。最后是spring 核心的ioc

功能相關(guān)的配置文件, 知道接口與具體類的注入大致是怎樣的。當(dāng)然還有一些如 apectj 置文件,也是在這個(gè)步驟中完成

5、log

相關(guān)文件,日志的各個(gè)級(jí)別是如何處理的,在哪些 地方使用了log 記錄日志

6、從上面幾點(diǎn)后知道了整個(gè)開(kāi)源項(xiàng)目的整體框架,閱讀 每個(gè)方法就不再那么難了。

7、當(dāng)然如果有項(xiàng)目配套的開(kāi)發(fā)文檔也是要閱讀的。

javaweb 做一個(gè)通訊錄的小項(xiàng)目 求源代碼 急求。

先設(shè)計(jì)數(shù)據(jù)庫(kù)中通訊錄表格(字段有:id,聯(lián)系人姓名,手機(jī)號(hào),備注),然后,hebinate實(shí)現(xiàn)數(shù)據(jù)庫(kù)表到j(luò)avabean的映射,同時(shí)也會(huì)生成對(duì)通訊錄表格的增刪改查的基本sql語(yǔ)句對(duì)應(yīng)的接口。然后你再寫(xiě)一個(gè)Servlet,連接頁(yè)面自己數(shù)據(jù)庫(kù)操作接口即可

怎樣高效的閱讀JavaWeb項(xiàng)目源代碼

首先要理清楚代碼結(jié)構(gòu)和業(yè)務(wù)結(jié)構(gòu)(應(yīng)該有些文檔或者大的流程圖),這是閱讀具體代碼的前提。

閱讀Java?web項(xiàng)目的代碼:

你需要找到

View層的代碼:前端頁(yè)面、圖片、資源文件都在其中。

Controller層的代碼:控制試圖與模型層以及數(shù)據(jù)傳遞。

Service層的代碼:業(yè)務(wù)邏輯。

Dao層的代碼:數(shù)據(jù)庫(kù)訪問(wèn)邏輯。

從web.xml?-?appcontext.xml?-?xxx

如何用Java實(shí)現(xiàn)Web服務(wù)器

一 HTTP協(xié)議的作用原理

WWW是以Internet作為傳輸媒介的一個(gè)應(yīng)用系統(tǒng) WWW網(wǎng)上最基本的傳輸單位是Web網(wǎng)頁(yè) WWW的工作基于客戶機(jī)/服務(wù)器計(jì)算模型 由Web 瀏覽器(客戶機(jī))和Web服務(wù)器(服務(wù)器)構(gòu)成 兩者之間采用超文本傳送協(xié)議(HTTP)進(jìn)行通信 HTTP協(xié)議是基于TCP/IP協(xié)議之上的協(xié)議 是Web瀏覽器和Web服務(wù)器之間的應(yīng)用層協(xié)議 是通用的 無(wú)狀態(tài)的 面向?qū)ο蟮膮f(xié)議 HTTP協(xié)議的作用原理包括四個(gè)步驟

( ) 連接 Web瀏覽器與Web服務(wù)器建立連接 打開(kāi)一個(gè)稱為socket(套接字)的虛擬文件 此文件的建立標(biāo)志著連接建立成功

( ) 請(qǐng)求 Web瀏覽器通過(guò)socket向Web服務(wù)器提交請(qǐng)求 HTTP的請(qǐng)求一般是GET或POST命令(POST用于FORM參數(shù)的傳遞) GET命令的格式為

GET 路徑/文件名 HTTP/

文件名指出所訪問(wèn)的文件 HTTP/ 指出Web瀏覽器使用的HTTP版本

( ) 應(yīng)答 Web瀏覽器提交請(qǐng)求后 通過(guò)HTTP協(xié)議傳送給Web服務(wù)器 Web服務(wù)器接到后 進(jìn)行事務(wù)處理 處理結(jié)果又通過(guò)HTTP傳回給Web瀏覽器 從而在Web瀏覽器上顯示出所請(qǐng)求的頁(yè)面

例 假設(shè)客戶機(jī)與 /mydir/l建立了連接 就會(huì)發(fā)送GET命令 GET /mydir/l HTTP/ 主機(jī)名為的Web服務(wù)器從它的文檔空間中搜索子目錄mydir的文件l 如果找到該文件 Web服務(wù)器把該文件內(nèi)容傳送給相應(yīng)的Web瀏覽器

為了告知 Web瀏覽器傳送內(nèi)容的類型 Web服務(wù)器首先傳送一些HTTP頭信息 然后傳送具體內(nèi)容(即HTTP體信息) HTTP頭信息和HTTP體信息之間用一個(gè)空行分開(kāi)

常用的HTTP頭信息有

① HTTP OK

這是Web服務(wù)器應(yīng)答的第一行 列出服務(wù)器正在運(yùn)行的HTTP版本號(hào)和應(yīng)答代碼 代碼 OK 表示請(qǐng)求完成

② MIME_Version

它指示MIME類型的版本

③ content_type 類型

這個(gè)頭信息非常重要 它指示HTTP體信息的MIME類型 如 content_type text/指示傳送的數(shù)據(jù)是HTML文檔

④ content_length 長(zhǎng)度值

它指示HTTP體信息的長(zhǎng)度(字節(jié))

( ) 關(guān)閉連接 當(dāng)應(yīng)答結(jié)束后 Web瀏覽器與Web服務(wù)器必須斷開(kāi) 以保證其它Web瀏覽器能夠與Web服務(wù)器建立連接

二 Java實(shí)現(xiàn)Web服務(wù)器功能的程序設(shè)計(jì)

根據(jù)上述HTTP協(xié)議的作用原理 實(shí)現(xiàn)GET請(qǐng)求的Web服務(wù)器程序的方法如下

( ) 創(chuàng)建ServerSocket類對(duì)象 監(jiān)聽(tīng)端口 這是為了區(qū)別于HTTP的標(biāo)準(zhǔn)TCP/IP端口 而取的

( ) 等待 接受客戶機(jī)連接到端口 得到與客戶機(jī)連接的socket

( ) 創(chuàng)建與socket字相關(guān)聯(lián)的輸入流instream和輸出流outstream

( ) 從與socket關(guān)聯(lián)的輸入流instream中讀取一行客戶機(jī)提交的請(qǐng)求信息 請(qǐng)求信息的格式為 GET 路徑/文件名 HTTP/

( ) 從請(qǐng)求信息中獲取請(qǐng)求類型 如果請(qǐng)求類型是GET 則從請(qǐng)求信息中獲取所訪問(wèn)的HTML文件名 沒(méi)有HTML文件名時(shí) 則以l作為文件名

( ) 如果HTML文件存在 則打開(kāi)HTML文件 把HTTP頭信息和HTML文件內(nèi)容通過(guò)socket傳回給Web瀏覽器 然后關(guān)閉文件 否則發(fā)送錯(cuò)誤信息給Web瀏覽器

( ) 關(guān)閉與相應(yīng)Web瀏覽器連接的socket字

下面的程序是根據(jù)上述方法編寫(xiě)的 可實(shí)現(xiàn)多線程的Web服務(wù)器 以保證多個(gè)客戶機(jī)能同時(shí)與該Web服務(wù)器連接

程序 WebServer java文件

//WebServer java 用JAVA編寫(xiě)Web服務(wù)器

import java io *

import *

public class WebServer {

public static void main(String args[]) {

int i= PORT=

ServerSocket server=null

Socket client=null

try {

server=new ServerSocket(PORT)

System out println( Web Server is listening on port +server getLocalPort())

for ( ) {client=server accept() //接受客戶機(jī)的連接請(qǐng)求

new ConnectionThread(client i) start()

i++

}

} catch (Exception e) {System out println(e) }

}

}

/* ConnnectionThread類完成與一個(gè)Web瀏覽器的通信 */

class ConnectionThread extends Thread {

Socket client //連接Web瀏覽器的socket字

int counter //計(jì)數(shù)器

public ConnectionThread(Socket cl int c) {

client=cl

counter=c

}

public void run() //線程體

{try {

String destIP=client getInetAddress() toString() //客戶機(jī)IP地址

int destport=client getPort() //客戶機(jī)端口號(hào)

System out println( Connection +counter+ connected to +destIP+ on port +destport+ )

PrintStream outstream=new PrintStream(client getOutputStream())

DataInputStream instream=new DataInputStream(client getInputStream())

String inline=instream readLine() //讀取Web瀏覽器提交的請(qǐng)求信息

System out println( Received +inline)

if (getrequest(inline)) { //如果是GET請(qǐng)求

String filename=getfilename(inline)

File file=new File(filename)

if (file exists()) { //若文件存在 則將文件送給Web瀏覽器

System out println(filename+ requested )

outstream println( HTTP/ OK )

outstream println( MIME_version )

outstream println( Content_Type text/ )

int len=(int)file length()

outstream println( Content_Length +len)

outstream println( )

sendfile(outstream file) //發(fā)送文件

outstream flush()

} else { //文件不存在時(shí)

String notfound=

Error file not found

outstream println( HTTP/ no found )

outstream println( Content_Type text/ )

outstream println( Content_Length +notfound length()+ )

outstream println( )

outstream println(notfound)

outstream flush()

}

}

long m =

while (m ) {m ++ } //延時(shí)

client close()

} catch (IOException e) {

System out println( Exception +e)

}

}

/* 獲取請(qǐng)求類型是否為 GET */

boolean getrequest(String s) {

if (s length() )

{if (s substring( ) equalsIgnoreCase( GET )) return true

}

return false

}

/* 獲取要訪問(wèn)的文件名 */

String getfilename(String s) {

String f=s substring(s indexOf(′ ′)+ )

f=f substring( f indexOf(′ ′))

try {

if (f charAt( )==′/′)

f=f substring( )

} catch (StringIndexOutOfBoundsException e) {

System out println( Exception +e)

}

if (f equals( )) f= l

return f

}

/*把指定文件發(fā)送給Web瀏覽器 */

void sendfile(PrintStream outs File file) {

try {

DataInputStream in=new DataInputStream(new FileInputStream(file))

int len=(int)file length()

byte buf[]=new byte[len]

in readFully(buf)

outs write(buf len)

outs flush()

in close()

} catch (Exception e) {

System out println( Error retrieving file )

System exit( )

}

}

}

程序中的ConnectionThread線程子類用來(lái)分析一個(gè)Web瀏覽器提交的請(qǐng)求 并將應(yīng)答信息傳回給Web瀏覽器 其中 getrequest()方法用來(lái)檢測(cè)客戶的請(qǐng)求是否為 GET getfilename(s)方法是從客戶請(qǐng)求信息s中獲取要訪問(wèn)的HTML文件名 sendfile()方法把指定文件內(nèi)容通過(guò)socket傳回給Web瀏覽器

對(duì)上述程序的getrequest()方法和相關(guān)部分作修改 也能對(duì)POST請(qǐng)求進(jìn)行處理

三 運(yùn)行實(shí)例

為了測(cè)試上述程序的正確性 將編譯后的WebServer class ConnectionThread class和下面的l文件置于網(wǎng)絡(luò)的某臺(tái)主機(jī)的同一目錄中(如 主機(jī)NT SRV的C JWEB目錄)

程序 l文件

這是用JAVA寫(xiě)出的WEB服務(wù)器主頁(yè)

年 月 日

首先在該主機(jī)上用java命令運(yùn)行WebServer class

C jwebjava webserver

然后在客戶機(jī)運(yùn)行瀏覽器軟件 在URL處輸入WebServer程序所屬的URL地址(如 ) 就在瀏覽器窗口顯示出指定的HTML文檔

注意 不能缺省端口號(hào) 如缺省 則運(yùn)行該主機(jī)的正常WEB服務(wù)器

lishixinzhi/Article/program/Java/hx/201311/26626

關(guān)于javaweb程序設(shè)計(jì)任務(wù)教程源代碼和java web程序設(shè)計(jì)任務(wù)教程源碼的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://www.atlasseeker.com/post/15851.html

“javaweb程序設(shè)計(jì)任務(wù)教程源代碼(java web程序設(shè)計(jì)任務(wù)教程源碼)” 的相關(guān)文章

保定網(wǎng)站優(yōu)化(保定網(wǎng)站建站模板)

保定網(wǎng)站優(yōu)化(保定網(wǎng)站建站模板)

本篇文章給大家談?wù)劚6ňW(wǎng)站優(yōu)化,以及保定網(wǎng)站建站模板對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、保定網(wǎng)站百度優(yōu)化推廣哪家好 2、保定市怎么做SEO優(yōu)化呢,關(guān)鍵詞要怎么優(yōu)化? 3、保定SEO網(wǎng)站優(yōu)化高手是誰(shuí)? 保定網(wǎng)站百度優(yōu)化推廣哪家好 云優(yōu)化。經(jīng)查詢百度優(yōu)化...

免費(fèi)個(gè)人網(wǎng)站制作的簡(jiǎn)單介紹

免費(fèi)個(gè)人網(wǎng)站制作的簡(jiǎn)單介紹

本篇文章給大家談?wù)劽赓M(fèi)個(gè)人網(wǎng)站制作,以及對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、怎么做免費(fèi)個(gè)人網(wǎng)站 2、想弄一個(gè)免費(fèi)的個(gè)人網(wǎng)站要怎么做? 3、免費(fèi)的個(gè)人網(wǎng)站怎么做 4、怎么免費(fèi)建立個(gè)人網(wǎng)站 怎么做免費(fèi)個(gè)人網(wǎng)站 免費(fèi)的個(gè)人網(wǎng)站做法如下:1、在百度上輸入...

中國(guó)建設(shè)銀行網(wǎng)站(中國(guó)建設(shè)銀行網(wǎng)站注冊(cè)不了)

中國(guó)建設(shè)銀行網(wǎng)站(中國(guó)建設(shè)銀行網(wǎng)站注冊(cè)不了)

本篇文章給大家談?wù)勚袊?guó)建設(shè)銀行網(wǎng)站,以及中國(guó)建設(shè)銀行網(wǎng)站注冊(cè)不了對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、中國(guó)建設(shè)銀行的網(wǎng)站是www.ccb.com還是www.ccb.cn? 2、建設(shè)銀行的網(wǎng)址是什么 3、中國(guó)建設(shè)銀行的官方網(wǎng)站是什么? 中國(guó)建設(shè)銀行的網(wǎng)站...

關(guān)于專業(yè)網(wǎng)站建設(shè)公司的信息

關(guān)于專業(yè)網(wǎng)站建設(shè)公司的信息

本篇文章給大家談?wù)剬I(yè)網(wǎng)站建設(shè)公司,以及對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、網(wǎng)站建設(shè)公司哪家比較好 2、杭州網(wǎng)站建設(shè)公司哪家好 3、網(wǎng)站建設(shè)哪家公司比較好? 4、做網(wǎng)站建設(shè)哪家好 5、成都網(wǎng)站建設(shè) 6、網(wǎng)站建設(shè)哪家公司好? 網(wǎng)站建設(shè)公司哪...

2022個(gè)人簡(jiǎn)歷模板免費(fèi)(2021簡(jiǎn)歷模板免費(fèi))

2022個(gè)人簡(jiǎn)歷模板免費(fèi)(2021簡(jiǎn)歷模板免費(fèi))

本篇文章給大家談?wù)?022個(gè)人簡(jiǎn)歷模板免費(fèi),以及2021簡(jiǎn)歷模板免費(fèi)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、2022個(gè)人簡(jiǎn)歷中的格式 2、2022文員個(gè)人簡(jiǎn)歷模板 3、簡(jiǎn)單版2022個(gè)人簡(jiǎn)歷模板 2022個(gè)人簡(jiǎn)歷中的格式 ? ? 如何能制作出一份成功...

ppt創(chuàng)建自己的模板(ppt自己做模板)

ppt創(chuàng)建自己的模板(ppt自己做模板)

本篇文章給大家談?wù)刾pt創(chuàng)建自己的模板,以及ppt自己做模板對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、如何快速設(shè)置ppt模板 2、如何制作PPT模板 3、如何制作ppt模板 如何快速設(shè)置ppt模板 新建一個(gè)PPT。新建一個(gè)自己需要的PPT,然后打開(kāi),接著...