目录
1.MVC 模式介绍
2JSP中的MVC模式介绍
3.模型的生命周期与视图更新
1.MVC 模式介绍
模型
-
视图
-
控制器(
Model-View-Controller
),简称为
MVC
。
MVC
是一种通过三部分构造一个软件或组件的理想办法。
模型(model) 用于存储数据的对象。
视图(view) 向控制器提交所需数据、显示模型中的数据。
控制器(
controller) 负责具体的业务逻辑操作,即控制器根据视图提
出的要求对数据做出(商业)处理,将有关结果存储到模型中,并负责
让模型和视图进行必要的交互,当模型中的数据变化时,让视图更新显
示。
2JSP中的MVC模式
模型(Model) 一个或多个Javabean对象,用于存储数据。
视图(View) 一个或多个JSP页面,其作用是向控制器提交必要的数据和显示数据。
JSP页面可以使用HTML标记、Javabean标记以及Java程序片或Java表达式来显示数据。
视图的主要工作就是显示数据,对数据的逻辑操作由控制器负责。
控制器(
Controller) 一个或多个servlet对象,根据视图提交的要求进行数据处理
操作,并将有关的结果存储到Javabean中,然后servlet使用转发或重定向的方式请求
视图中的某个JSP页面显示数据。比如让某个JSP页面通过使用Javabean标记、Java程
序片或Java表达式显示控制器存储在Javabean中的数据。
3.模型的生命周期与试图更新
3.1 request bean
bean
的创建
servlet
创建
request bean
的步骤如下:
(1)用
BeanClass
类的某个构造方法创建
bean
对象,例如:
BeanClass bean=new BeanClass();
(2)
request.setAttribute("keyWord" ,bean);
视图更新
servlet
所请求的
JSP
页面可以使用相应的标记显示该
request bean
中的数据。
该
JSP
页面对请求做出响应之后,
request bean
所占有的内存被释放,结束自
己的生命。
RequestDispatcher dispatcher= request.getRequestDispatcher("show.jsp");
dispatcher.forward(request,response);
servlet
所请求的
JSP
页面,比如
show.jsp
页面可以使用如下标记获得
servlet
所
创建的
request bean
:
<jsp:useBean id="keyWord" class="save.data.BeanClass" scope="request"/>
该标记中的
id
是
servlet
所创建的
bean
的
id
。
然后
JSP
页面可以使用相应的标记或程序片显示该
request bean
中的数据
3.2seesion bean
servlet
创建
session bean
的步骤如下:
(1)用
BeanClass
类的某个构造方法创建
bean
对象,例如:
BeanClass bean=new BeanClass();
(
2
)
HttpSession session=request.getSession(true);
session.setAttribute("keyWord" ,bean);
视图更新
Web
服务目录的各个
JSP
都可以使用
<jsp:useBean id="keyWord" class="save.data.BeanClass" scope="session"/>
标记获得
servlet
所创建的
session bean
,然后使用相应的标记或程序片显示该
request bean
中的数据。
如果
servlet
希望某个
JSP
显示其中的数据,可以使用
RequestDispatcher
对象转
发到该页面,也可以使用
HttpServletResponse
类中的重定向方法
(sendRedirect)定向到该页面。
3.3application bean
bean
的创建
ervlet
创建
application bean
的步骤如下:
(1)用
BeanClass
类的某个构造方法创建
bean
对象,例如:
BeanClass bean=new BeanClass();
(2) getServletContext().setAttribute("keyWord" ,bean);
视图更新
servlet
建
bean
的第(2)步骤决定了bean
为
application bean
。
用户在访问
Web
服务目录的各个
JSP
中都可以使用
<jsp:useBean id="keyWord" class="save.data.BeanClass" scope="application"/>
标记获得
servlet
所创建的
application bean
,然后使用相应的标记或程序片显示
该
application bean
中的数据,例如,使用
<jsp:getProperty name="keyWord" property="bean
的变量
"/>
标记显示该
application bean
中的数据。
如果
servlet
希望某个
JSP
显示其中的数据,可以使用
RequestDispatcher
对象向
该
JSP
页面发出请求,也可以使用
HttpServletResponse
类中的重定向方法 (sendRedirect)。