JavaWeb 三層架構與MVC 亂碼

2021-09-11 07:23:53 字數 2950 閱讀 5720

三層架構:

和mvc一樣,都是為了解耦合,提高**的復用,區別是,二者對專案的理解是不同。

三層組成:

表示層,usl: use show layer,檢視層,和使用者的互動,

-- 前台  介面的顯示   css jsp html ...

-- 控制跳轉,呼叫業務邏輯層 servlet (springmvc struts2)

業務邏輯層 bll: bussness logic layer: service 層 承上啟下,邏輯操作,如刪除之前,先判斷資料存在,然後再刪除

資料訪問層 dal, data access layer   dao 層 , 直接訪問資料庫的操作,原子性的操作

如上圖就是三層結構,表示層負責發任務,在業務邏輯層這個任務拆成多個小任務,而這些小任務都是不可在分的,

如乙個刪除任務,在業務邏輯層就需要拆為查和刪小任務。

上面例子中的

再三層中的實體類,是負責三層之間資料的傳遞,也可以歸納到mvc中的模型中去。

亂碼問題:

html頁面亂碼問題:或者將gb18030換為 utf-8 

servlet收到的request的param(即請求引數)亂碼問題,需設定request的charset:

request.setcharacterencoding("utf-8");

string snum = request.getparameter("snum");

response 返回到瀏覽器亂碼:

response.setcontenttype("text/html; charset=utf-8");
資料庫儲存亂碼:

private final string url = "jdbc:mysql://localhost:3306/springbootdb?characterencoding=utf-8";
idea 使用tomcat sout 輸出中文的時候亂碼:檢視編碼方式

string encoding=system.getproperty("file.encoding");

system.out.println("系統編碼方式: " + encoding);

tomcat 得edit configuration 中配置

get請求當拿到的url 中的引數的時候亂碼

// 下面的方式可以解決post或者get方式的中文亂碼問題

// 這裡接收的name是iso8859-1的字元編碼,tomcat 預設的編碼方式

string name = request.getparameter("username");

// 將name字串按照原來字元編碼打散

byte bytes = name.getbytes("iso8859-1");

// 將bytes位元組資料按照指定字元編碼字元編碼進行組裝,組裝為string

name = new string(bytes, "utf-8");

//真正的寫法:name = new string(name.getbytes("iso8859-1"), "utf-8");

或者在tomcat的service.xml 配置檔案中修改預設編碼方式

post請求體中亂碼:

request.setcharacterencoding("utf-8");
request.setcharacterencoding("utf-8"); // 請求的編碼

response.setcharacterencoding("utf-8");// 響應的編碼

// 設定響應編碼

// response.setcontenttype("text/html; charset=utf-8");

// 需要在響應**生成以前進行編碼,如果將編碼寫到out 之後那麼還會亂碼

string snum = request.getparameter("snum");

string sname = request.getparameter("sname");

integer sage = integer.parseint(request.getparameter("sage"));

string saddress = request.getparameter("saddress");

student student = new student(integer.valueof(snum), sname, sage, saddress);

studentservice studentservice = new studentservice();

printwriter writer = response.getwriter();

try else

分頁:

以上的做法的缺點是,id 值必須是連續的,否則無法滿足10條資料。

三層架構與MVC

三層架構分為表示層 ui 業務邏輯層 bll 資料訪問層 dal dal 直接運算元據庫,針對資料的增 刪 改 查。bll 針對具體問題,對資料層操作,對資料業務邏輯進行處理。ui 頁面展示。mvc是在表示層 ui 中再度進行分化,分成實體 model 檢視 view 控制器 control mod...

」MVC 「與 」三層架構「

由於之前主要是在做c s結構的應用,所以接觸b s沒多久,對asp.net mvc html5 jquery這些東西了解不夠,有個新人一直說 asp.net mvc 是假三層 用了mvc就沒必要再有web中間的服務層 後來我發現這個觀點是錯誤的,因為我去問 度娘 了。mvc全名是model view...

三層架構與MVC

三層架構是指 檢視層view 服務層service與持久層dao。為了更好的降低各層間的耦合度,在三層架構程式設計中,採用面向抽象程式設計。即上層對下層的呼叫,是通過介面實現的。而下層對上層的真正服務提供者,是下層介面的實現類。服務標準 介面 是相同的,服務提供者 實現類 可以更換。這就實現了層間解...