如题, 准备造个 servlet model 和 controller 间的轮子,为啥不用 struts 或 spring mvc 等 mvc 框架? 貌似一下说不清,主要还是考虑的性能,以及现有的模块的特殊性 。
首先,就是要考虑如何映射和实例化 action / controller, 单实例还是多实例?我偏向 单实例异步。咱们要的就是效率。
如何实例化调用 action 呢? 还是用反射吧,我看tomcat6 的源码,里面都用了反射。不过每个request 都用到反射? 先写到这了,希望大家多提意见。
附:struts1 vs struts2
struts2.x是线程安全的,每一个对象产生一个实例,避免了线程安全问题;而struts1.x在action中属于单线程。
• Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
• Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题,前提是在 jdk1.5 +)
分享到:
相关推荐
此外,Struts、Hibernate和Spring等框架在中间层中起到了简化开发、规范流程的作用,比如Struts用于MVC(Model-View-Controller)设计模式,Hibernate则是一个对象关系映射(ORM)工具,能将Java对象与数据库表进行...
Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,由Apache软件基金会维护。它使得开发者能够更有效地组织和构建动态网站应用。Struts的核心功能包括请求调度、动作控制、业务逻辑处理、表单...
JSP Model 2引入了Model-View-Controller(MVC)架构,进一步分离了业务逻辑、视图和控制。在这个模型中,JSP主要负责显示视图,Servlet或控制器处理请求,而模型(通常是JavaBean)则负责业务逻辑。这种分离使代码...
This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote ...
其核心价值在于封装了一系列通用的应用服务,如控制流程、输入验证、错误处理以及标签库等,从而允许开发者专注于业务逻辑的编写,而无需重复造轮子。 #### 二、Struts框架的工作原理:从Model1到Model2 ##### ...
将这些共性提取出来,形成框架,可以让开发者专注于业务逻辑,而不是重复造轮子。通过框架,可以提高开发效率,同时确保代码的质量和稳定性。 (3)使用框架的好处 使用框架的主要优点包括减少重复工作、提高代码...
Web框架的核心价值在于能够提供一系列应用服务,使得开发人员能够专注于实现应用程序的独特业务逻辑,而不是重复造轮子。 ##### 1.2 为什么需要Web框架? - **节省时间和资源**:使用现成的Web框架可以显著减少...
而Struts2的引入,将这三个职责明确分离,分别由JSP、Servlet和JavaBean承担,极大地改善了代码的可读性和可维护性。 #### Struts2与WebApp的关系 Struts2作为Web框架,主要服务于Web层应用系统的开发。根据J2EE...
Struts是Apache软件基金会 Jakarta项目下的一个开源框架,主要用于构建基于Java的企业级Web应用程序。...同时,阅读和理解别人的代码也是一种很好的学习方式,可以帮助我们吸取经验,避免重复造轮子,提高开发效率。
MVC(Model-View-Controller)设计模式是一种广泛应用于Web应用程序开发的架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。 1. Model:模型层,负责处理数据的业务...
4. **MVC模式**:Model-View-Controller模式是javaweb开发中常见的设计模式。模型层负责业务逻辑,视图层负责展示,控制器层负责协调。了解MVC架构并能运用到实际项目中,有助于提高代码组织性和可维护性。 5. **...
开发者可以通过查阅文档来了解特定功能的实现方式,学习最佳实践,避免重复造轮子,并且能及时解决编程过程中遇到的问题。 总之,这份"Java Web学习的所有API中文文档"集合了Java Web开发的全面参考资料,无论你是...
此外,这些实际案例和源代码还能帮助开发者在遇到类似问题时,快速找到解决思路,避免重复造轮子,提升开发效率。总之,《专家门诊-JSP开发答疑200问源代码》是一份全面、实用的JSP学习资料,对JSP初学者和有经验的...
1. **基于现有的 Java Web 组件**:Struts 并没有重新发明轮子,而是基于已有的 Java Web 组件如 Servlet、JSP 和 JavaBean 进行构建。这种方式使得开发者可以充分利用现有的技术和工具,而不需要学习全新的组件。 ...
在JSP中,我们可以利用MVC(Model-View-Controller)设计模式来分离业务逻辑、数据和用户界面。模型层处理数据,视图层负责展示,控制器接收请求并协调模型和视图。此外,还可以使用工厂模式来创建Servlet实例,或...
标签"Sshspringmvc"揭示了部分JAR包可能与两个流行的Java Web框架相关:Struts(S)和Spring MVC(Spring Model-View-Controller)。Struts是Apache组织的一个开源项目,它提供了MVC架构的实现,帮助开发者构建基于...
1. **Struts**: Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了一种组织应用程序结构的方式,使得开发者能够更好地分离业务逻辑、数据模型和用户界面。Struts通过控制器Servlet...
Grails 的强大之处在于其插件生态,如Security、Spring Security Core、Cache、Ajax等,它们提供开箱即用的功能,减少重复造轮子的工作。 6. **Grails URL 映射** 通过配置URL映射,Grails允许开发者定义清晰、...
- **MVC (Model-View-Controller)**:将应用程序分为三个主要部分,使得代码更加模块化和易于维护。 - **Facade (外观)**:提供一个统一的接口,隐藏了子系统的复杂性。 - **Singleton (单例)**:确保一个类只有一个...