1.定义用以表示数据的bean
2.使用一个servlet处理请求
--servlet请求参数,检查数据的缺失或异常等。
3.填充bean
--该servlet调用业务逻辑(与具体应用相关的代码)
或数据访问代码得到最终的结果。得出的结果被放在以第一步中
定义的bean中。
4.将bean存储在请求,会话或servlet的上下文中
--该servlet调用请求、会话或servlet上下文对象的
setAttribute存储表达请求结果的bean的引用。
5.将请求转发到jsp页面
-=该servlet确定哪个jsp页面时候于处理当前的情形,
并使用RequestDispatcher的forward方法将控制转移到
那个页面。
例:
req.getRequestDispatcher("/test.jsp").forward(req,resp);
6.从bean中提取数据
JSP页面使用jsp:userBean和与第四步匹配的位置访问之前存储的bean。
然后使用jsp:getProperty输出bean的属性。
---JSP页面并不创建或修改bean:它只是提取并显示由servlet创建的数据。
7.
使用response.sendRedirect 取代
RequestDispatcher.forward
的差别:
-用户可以看到Jsp的URL(使用
RequstDisptcher.forward时用户只能看到servlet的URL);
==客户程序要经过两次往返(二forward只需要一次);
sendRedirect的优点
--用户可以单独访问JSp的页面
。用户能过保存jsp页面的地址;
SendRedirect的缺点;
由于用户可以在不首先经过servlet的清空下访问JSP页面,所以,JSP页面所需的数据可能不存在。
因此,JSP页面需要编写代码检查这种情况。