MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中,MVC是分层的思想的体现,但是区别于三层设计模式(区别以后再和大家分享)。
MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。
mvc逻辑图
例子
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是很简单的.