MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化使用者介面的結構中,MVC是分層的思想的體現,但是區別於三層設計模式(區別以後再和大家分享)。
MVC是一個架構模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心組件:模型、視圖、控制器。它們各自處理自己的任務。最典型的MVC就是JSP + servlet + javabean的模式。
例子
1.開發環境:MyEclipse 8.0 伺服器使用其內建的MyEclipse Tomcat 6
2.建立一個web project,取名為login。在其WebRoot目錄下建立一個login.html,這個頁面可以看做mvc中的view(視圖),指的也就是使用者介面,mvc將其分離出來可以使網頁美工師更加專註於頁面的美化,程式員專註於背景程式的設計。login.html主要代碼如下,很簡單主要做了一個傳統登入的頁面。
<form action=”loginServlet” method=”post”>
<div>
Name <input type=”text” name=”name”/><br/>
Password <input type=”text” name=”pas”/><br/>
<input type=”submit” value=”Login”/>
<input type=”hidden” value=”login” name=”typeId”/>
</div>
</form>
3.在src目錄下建立modle.Java,包名稱為login。這個檔案可以看做mvc中的modle(模型),模型表示企業資料和商務規則。在MVC的三個組件中模型擁有最多的處理任務。例如它可能用象EJBs和ColdFusion Components這樣的構件對象來處理資料庫。在這裡我們不牽涉資料庫部分,只是簡單完成驗證功能,當使用者輸入Name為admin,Password為1234時即認為登入成功。代碼如下:
/**
* 2010-4-19
* model.java
* author:Xiangzi
*/
package login;
public class model {
private String name=null;
private String pas=null;
public void setName(String name)
{
this.name=name;
}
public String getName() {
return name;
}
public void setPas(String pas)
{
this.pas=pas;
}
public String getPas() {
return pas;
}
public boolean login()
{
if ((name.trim().equals(“admin”))&&(pas.trim().equals(“1234″))) {
return true;
}
else {
return false;
}
}
}
4.建立servlet檔案。步驟:Menu/File-New-Web-Servlet,包名稱為login,名稱為loginServlet。Servlet是mvc裡面的c(控制器),控制器接受使用者的輸入並調用模型和視圖去完成使用者的需求。所以當單擊Web頁面中的超連結和發送HTML表單時,控制器(例如:servlet)本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後確定用哪個視圖來顯示模型處理返回的資料。在這裡我們修改loginServlet.java檔案裡面的doPost方法,doPost內代碼如下:
response.setContentType(“text/html;charset=GB2312″);//設定響應的MIME類型。
java.io.PrintWriter out = response.getWriter();
String type=request.getParameter(“typeId”);
if (type.trim().equals(“login”)) {
String name=request.getParameter(“name”);//擷取視圖裡的name
String pas=request.getParameter(“pas”);//擷取視圖裡的password
model newModel=new model();//調用模型
newModel.setName(name);
newModel.setPas(pas);
if(newModel.login())
{
out.print(“script Lanuage=’<a href=”http://lib.csdn.net/base/18″ class=’replace_word’ title=”JavaScript知識庫” target=’_blank’ style=’color:#df3434; font-weight:bold;’>JavaScript</a>’>window.alert(‘登入成功!’)</script>”);
}
else {
out.print(“script Lanuage=’JavaScript’>window.alert(‘登入失敗!’)</script>”);
}
}
5.配置web.xml檔案.主要代碼如下:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>loginServlet</servlet-name>
<servlet-class>login.loginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
6.在瀏覽器內輸入地址就可以看到結果。可以看到使用Jsp+Servlet+JavaBean開發Web Application是很簡單的.