標籤:
MVC簡單介紹
Java Web應用的結構一個經曆了兩種開發模式,分別為Model1和Model2。Model1由大量的JSP頁面以及少量的JavaBean組成,頁面和Java代碼結合在一起無論是開發、擴充還是維護都有極大的不便,所以基於MVC開發模式的Model2應運而生。
MVC是一種開發模式,它可以將我們的代碼解耦,讓視圖代碼,和我們的邏輯代碼分開編寫,為我們後期的維護帶來了極大的便利。MVC將我們的項目結構分為三個部分視圖層(View)、控制層(Controller)、模型層(Model),View專職於視圖的顯示,也就是我們在一個應用的可以看到的頁面,Model專職於和資料庫的增刪改查的操作,Controller負責把View和Controller串連起來,是兩者之間的一個橋樑。
展示了MVC開發模式是如何工作的:
mvc簡圖
我們在頁面(View)上產生的請求(點擊一個超連結產生一個location或者是圖片的src請求)會由控制器(Controller)進行處理,控制器(Controller)根據使用者的請求作出相應的操作,如果需要資料的互動則調用模型層(Model)的方法來完成資料的互動,模型層(Model)主要處理資料的增刪該查的操作。這樣一套流程跑通之後就完成了我們的一次請求和響應。
假如我們現在有一個使用者註冊的功能來實現。
View層如下:
<form method="post" action="demo!register.action"> 使用者名稱<input type="text" name="username"><br/> 密 碼<input type="text" name="password"><br/> 郵 箱<input type="text" name="email"><br/> <input type="submit" value="註冊"></form>
Controller層如下:
private String username;private String password;private String email;public String register() throws Exception{ HandlerService service = new HandlerService(); if(service.HandlerRegister(username, password, email)){ return "success"; }else{ return "fail"; }}
Model層如下:
public boolean HandlerRegister(String username,String password,String email){ try { /* * 這裡執行資料庫的操作 * */ System.out.println(username); System.out.println(password); System.out.println(email); return true; } catch (Exception e) { return false; }}
現在我們把焦點放在處理流程上,上面代碼的具體實現請忽略。
首先我們在頁面上產生一個請求:demo!register.action
這個請求會由控制器(Controller)來進行處理:擷取使用者輸入的資訊,然後作為實參傳給模型層方法由模型層來完成對使用者輸入資料的操作,然後將結果反饋給使用者
模型層主要實現資料處理的邏輯,我們可以把模型層方法看做我們平時封裝的方法,預留出參數,然後這個方法由控制器(Controller)來調用
(上面的請求demo!register.action和控制器返回的"success"、"fail"顯示的頁面都是由struts2來控制的)
MVC開發模式