Java Web Programming 一般的数据共享方式
众所周知,在MVC模式当中, JavaBean充当模型,负责业务逻辑处理;JSP充当视图,负责数据显示;Servlet充当控制器,负责流程控制。于是JavaBean作为数据核心需要在JSP和 Severlet之间转递。其共享方式依照作用范围可以分为3个层次:基于请求的数据共享,基于会话的数据共享,以及基于应用的数据共享。但其实现步骤大致相同,归纳如下:
1. 在servlet中生成JavaBean;
2. 将JavaBean放入共享载体;
3. 利用请求分配器将请求forward到要显示数据的JSP上;
4. 在JSP上利用getProperty 标签显示JavaBean数据;
下面就3种不同的方式,总结对应的实例代码:
(一) 基于请求的数据共享
- Servlet
SomeJavaBean value= new SomeJavaBean();
Request.setAttribute(“key”, value);
RequestDispatcher dispatcher=request.getRequestDispatcher(“/SomePath/SomePage.jsp”);
Dispatcher.forward(request. response);
-JSP
(二)基于会话的数据共享
- Servlet
SomeJavaBean value= new SomeJavaBean();
HttpSession Session=request.getSession();
Session.setAttribute(“key”, value);
RequestDispatcher dispatcher=request.getRequestDispatcher(“/SomePath/SomePage.jsp”);
Dispatcher.forward(request. response);
-JSP
(三)基于应用的数据共享
- Servlet
Sychronized (this){
SomeJavaBean value= new SomeJavaBean();
getServletContext().setAttribute(“key”, value);
RequestDispatcher dispatcher=request.getRequestDispatcher(“/SomePath/SomePage.jsp”);
Dispatcher.forward(request. response);
}
-JSP
值得一提的是forward所做到的跳转对用户使透明的,用户所看到的依然是Servlet的URI,对于JSP,用户是不知情的,这样对资源起到较好的保护作用。