最近对一个别人的WEB项目进行维护,看到这样的实现方法:
1.只有一个Controller的servlet 类
2.一个Service接口
3.一些实现Service接口的类
Controller类负责进行控制,动态产生业务逻辑的类的实例(所有的类需要实现Service接口),然后通过
httpservletrequest.setAttribute("USERLIST", userList);向WEB端赋值,
具体的可以参考部分代码:
Controller 类(extends HttpServlet )
我现在想知道的 1.这种实现方案怎么样?为什么这么做,有什么好处 2.产生的service 类对象有没有必要用hashmap保存,以避免产生更多的对象
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
//service name,example for packagename.ServiceName
String serviceName = request.getParameter(Constant.SERVICE);
if (serviceName == null)
throw new ServletException("There isn't service parameter![?service=]");
String targetName = request.getParameter(Constant.TARGET);
//the targeted file name,example for /fileName.jsp
if (targetName == null)
throw new ServletException("There isn't target parameter![?target=]");
ServletContext servletcontext = getServletContext();
try {
//TODO:hashmap to reduce the generated instance?
Class serviceClass = Class.forName(serviceName);
Service service = (Service) serviceClass.newInstance();
service.execute(request, response, servletcontext);
}
catch (ClassNotFoundException classnotfoundexception) {
throw new ServletException(classnotfoundexception.getMessage());
}
catch (IllegalAccessException illegalaccessexception) {
throw new ServletException(illegalaccessexception.getMessage());
}
catch (Exception exception) {
throw new ServletException(exception.getMessage());
}
forward(request, response, targetName);
}
}
一个实现service的类(相当于业务类)
public interface Service {
public abstract void execute(
HttpServletRequest httpservletrequest,
HttpServletResponse httpservletresponse,
ServletContext servletcontext)throws Exception;
}
public class StartService implements Service {
public void execute(
HttpServletRequest httpservletrequest,
HttpServletResponse httpservletresponse,
ServletContext servletcontext)throws Exception {
//test data
List userList = new ArrayList();
httpservletrequest.setAttribute("USERNAME", "TestUser");
httpservletrequest.setAttribute("USERLIST", userList);
}
}
JSP 页面文件
<%String userName=(String)request.getAttribute("USERNAME");List userList=(List)request.getAttribute("USERLIST");%>
访问的时候:
/service.Controller?service=StartService&target=/StartPage.jsp
//TODO:hashmap to reduce the generated instance?
Class serviceClass = Class.forName(serviceName);
Service service = (Service) serviceClass.newInstance();
service.execute(request, response, servletcontext);
http://www.jdon.com/jivejdon/thread/17044.html
分享到:
相关推荐
通过结合Struts(一个MVC框架)和Hibernate(一个ORM框架),该项目旨在演示如何将这三者集成,实现一个功能完整的Web应用。 【标签】"jdon" 指出此项目的核心是Jdon框架。Jdon框架由我国著名软件工程师钟建东创立...
jDon框架是基于DDD理念实现的一个Java框架,由jivejdon-master项目提供源码,它在jdon.com上运行了超过十年,成为了一个学习和理解DDD实战的宝贵资源。本文将深入探讨jDon源码中的关键知识点,帮助开发者更好地理解...
Jdon是一个基于Java语言的开源项目,它以其独特的设计思想和丰富的功能特性,在开源社区中备受关注。本文将深入探讨Jdon项目的源码结构、设计理念以及相关的设计文档,帮助读者理解并学习到Java开发中的精髓。 一、...
本Jive(Jdon版)可在Jbuilder 7/8直接打开,请失效Jbuilder的Jsp编译功能。 建议你用Jbuilder7打开后,编辑相应设置(注意,必须是JDK1.4以上版本) 本软件在linux+jdk1.4+tomcat 4以上环境运行正常,由于采取ISO...
5. 模板设计模式:这是一种行为模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。这样可以让子类在不改变结构的情况下重定义该算法的某些特定步骤。 这本书可能会深入讲解每个模式的动机、结构、...
该框架由板桥里人(banq)创建并维护,自2005年7月14日发布1.2.2版本以来,已经广泛应用于多个项目中。Jdon框架的官方网站为[http://www.jdon.com](http://www.jdon.com),用户可以通过此网站获取技术支持和参与社区...
Jdon Framework(简称JF)是一套适合开发中小型J2EE/JavaEE应用系统的轻量Web框架(Lightweight Java Web Framework)。是国人独立开发的中国人自己的框架产品,2005年入选全球SUN公司网站java.net正式企业应用目录。...
而"jivejdon"文件可能是一个示例项目或者库,供开发者参考学习。 总的来说,Jive Jdon Jbuilder7是Java开发者的重要工具,它集成了设计模式的实践、全面的Java开发支持以及对企业级应用的良好兼容,旨在帮助开发者...
【标题】"jdon+structs+hibnate示例" 涉及到的是一个融合了三个核心技术的Java Web开发实例。jdon是一个国内开源的框架,它借鉴了Spring框架的设计理念,但针对中国的开发环境和需求进行了优化。在这个示例中,jdon...
说明:每个应用系统中存在大量重复的CRUD开发流程,通过本框架可快速完成这些基本基础工作量,将精力集中在特殊功能设计上。 CRUD快速开发主要简化了表现层的流程,将其固化,或者是模板化,以配置替代代码编制,...
通过以上分析,我们可以看到JdonFramework是一个全面且灵活的框架,适合开发复杂的分布式系统。它的设计理念和实现机制使其在实际项目中表现出强大的适应性。对于初学者和专业开发者而言,理解和掌握JdonFramework...
在实际项目中,这三个框架常常被结合起来使用,以实现一个全面的Java EE应用平台。Struts负责处理HTTP请求和响应,提供Web层的结构。Hibernate作为ORM工具,处理数据持久化,使得业务逻辑层可以专注于业务处理而不是...
Jdon Framework(简称JF)是一套适合开发中小型J2EE/JavaEE应用系统的轻量Web框架(Lightweight Java Web Framework)。是国人独立开发的中国人自己的框架产品,2005年入选全球SUN公司网站java.net正式企业应用目录。...
如何使用: <input type="text" name="fromDate" maxlength="20" size="20" value="" id="begin_date_b">('begin_date_b', 'y-m-d');">
jdon版的jive是一个基于JSP的论坛系统,它展示了如何在Web应用中使用Servlet和JSP来处理用户交互。JSP的核心特点是将展示逻辑(HTML渲染)与业务逻辑(Java代码)分离,这使得代码更易于维护和扩展。在研究jdon版的...
Struts是一个开源的MVC(Model-View-Controller)框架,用于简化Java Web应用程序的开发。通过Struts标签库,开发者可以更方便地创建HTML表单和页面元素。Struts标签库不仅能够提高开发效率,还能确保代码的一致性和...
jdon 数据库表整理。 显示简介的jdon数据关系。
框架 源代码 struts jdon hibernate