Java Web应用开发 数据共享方式
时间:2007-12-27 来源:ansonzeng
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
<jsp:useBean id=”key” type=”somePackage.SomeJavaBean”, scope=”request”/>
<jsp:getProperty name=”key” property=”SomeProperty”> (二)基于会话的数据共享 - 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 <jsp:useBean id=”key” type=”somePackage.SomeJavaBean”, scope=”session”/>
<jsp:getProperty name=”key” property=”SomeProperty”> (三)基于应用的数据共享 - Servlet
Sychronized (this){
SomeJavaBean value= new SomeJavaBean();
getServletContext().setAttribute(“key”, value);
RequestDispatcher dispatcher=request.getRequestDispatcher(“/SomePath/SomePage.jsp”);
Dispatcher.forward(request. response);
}
-JSP <jsp:useBean id=”key” type=”somePackage.SomeJavaBean”, scope=”application”/>
<jsp:getProperty name=”key” property=”SomeProperty”> 值得一提的是forward所做到的跳转对用户使透明的,用户所看到的依然是Servlet的URI,对于JSP,用户是不知情的,这样对资源起到较好的保护作用。
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
<jsp:useBean id=”key” type=”somePackage.SomeJavaBean”, scope=”request”/>
<jsp:getProperty name=”key” property=”SomeProperty”> (二)基于会话的数据共享 - 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 <jsp:useBean id=”key” type=”somePackage.SomeJavaBean”, scope=”session”/>
<jsp:getProperty name=”key” property=”SomeProperty”> (三)基于应用的数据共享 - Servlet
Sychronized (this){
SomeJavaBean value= new SomeJavaBean();
getServletContext().setAttribute(“key”, value);
RequestDispatcher dispatcher=request.getRequestDispatcher(“/SomePath/SomePage.jsp”);
Dispatcher.forward(request. response);
}
-JSP <jsp:useBean id=”key” type=”somePackage.SomeJavaBean”, scope=”application”/>
<jsp:getProperty name=”key” property=”SomeProperty”> 值得一提的是forward所做到的跳转对用户使透明的,用户所看到的依然是Servlet的URI,对于JSP,用户是不知情的,这样对资源起到较好的保护作用。
相关阅读 更多 +