M----model模型-----------存储数据(javabean对象,存储数据)
V-----view视图-------------提供数据显示(jsp页面,数据显示,主要使用html标记和javabean标记显示)
C----controller控制器----业务逻辑,让模型与视图交互,根据视图的要求处理数据,模型中数据变化时更新显示视图(Servlet对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到JavaBean中,然后Servlet使用重定向方式请求视图中的某个JSP页面更新显示。)
使用MVC的目的?
- 将人机交互(M)从核心功能中分离
- 模型对用户透明,用户只需观察视图(v)
- 用户与模型的交互通过控制器(c)提供的安全方法实现
MVC应用领域?
- 灵活的人机交互(灵活选择信息显示方式,灵活选择信息输入方式)
- 针对不同用户提供不同界面(不同用户权限不同,操作方式也不同)
jsp的MVC中Servlet负责创建Javabean,将数据存储在javabean中,然后Servlet请求jsp使用Javabean的getProperty标记:
<jsp:getProperty name= "名字" property="bean的属性"/>
jsp的MVC中Servlet创建的javabean也涉及到生命周期,生命周期分为request、session、application
(以下设类名为BeanClass,包名为user.yourbean)
- requset周期的javabean
创建javabean
BeanClass bean = new BeanClass();
request.setAttribute("keyword",bean);
视图更新
servlet请求一个jsp页面:
RequestDispather dispather = request.getRequestDispather("show.jsp");
dispather.forward(reuest,response);
jsp页面使用如下标记获得servlet所创建的Javabean的引用:
<jsp:useBean id="keyWord" type="flower.grass.CreateJavaBeanClass" scope="request"/>
jsp页面使用如下标记显示bean中的数据
<jsp:getProperty name="keyWord" Property="bean的变量"/>
- session周期的javabean
创建javabean
BeanClass bean = new BeanClass();
HttpSession session = request.getSession(true);
session.setAttribute("keyword",bean);
在web服务目录中任何jsp中都可以使用如下标记获得Servlet创建的bean的引用
<jsp:useBean id="keyWord" type="flower.grass.CreateJavaBeanClass" scope="session"/>
<jsp:getProperty name="keyWord" Property="bean的变量"/>
- application周期的javabean
创建javabean
BeanClass bean = new BeanClass();
getServletContext().setAttribute("keyword",bean);
在web服务目录中任何jsp中都可以使用如下标记获得Servlet创建的bean的引用
<jsp:useBean id="keyWord" type="flower.grass.CreateJavaBeanClass" scope="application"/>
<jsp:getProperty name="keyWord" Property="bean的变量"/>
一个例子
(i am so tired.)