`
Vksnail
  • 浏览: 43616 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

模拟struts框架技术

阅读更多

 Struts实质上就是在JSP model2java+servlet+javabean)模式的基础上实现一个MVC框架。我先简单说下MVC,MVCmodel—view—controller简称,即模型---视图控制器。工作原理如下:(见附件)

视图是与用户交互的界面,模型来表示业务数据和逻辑数据,而控制器是接受用户数据并调用模型和视图去完成用户需要。

struts框架中,模型由实现业务逻辑的javaBean或者EJB组成,控制器由一个基类Action和一些xxxAction来实现,视图由一些JSP文件构成。下图是struts实现的MVC框架流程:(附件)

 

Struts就是在MC两层中间加上一个MVC,在这个MVC里,

M层是应用程序的状态和业务逻辑,由一些javaBeanEJB组件来实现。

V层是JSP组件,没有业务代码,模型。只有标签,如用户自定义标签库等。

C层是由ActionServletAction类来实现的。

ActionServlet是整个框架的核心,继承HttpServlet,主要负责接收Http请求,根据用户的struts-config.xml配置文件,把请求转发给相应的Action,如果Action不存在,ActionServlet会先创建这个Action对象。而Action负责调用模型的方法,更新模型状态,并帮助控制应用程序的流程。

ActionServlet控制器接收到Http请求后,通过配置映射的struts-config.xml文件,把请求转发给一个Action实例,而每个Action的映射信息都通过<action>元素来配置,并以元素里一个path属性来制定请求的uri,并用属性name来匹配Action对象。如果这个Action实例不存在,ActionServlet先会创建它,然后调用Actionexcute()方法Actionexcute()方法会返回ActionForward对象,它封装了请求转发给其他web组件的信息。

这些配置信息在ActionServlet容器启动并初始化的时候,通过this.getServletContext().getRealPath(this.getInitParameter(xxx路径/struts-config.xml))的方式读入到内存,供在运行期间使用,而每一个<action>元素都对应一个ActionMapping类的实例。

下面就我的struts-config.xml配置文件详细解释如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mystruts-config SYSTEM "struts-config.dtd">

 

<mystruts-config>

   <form-beans>

      <form-bean name="loginform" type="yy.struts.form.LoginForm" />

   </form-beans>

  

   <action-mappings>

     <action

         name="loginform"

         type="yy.struts.action.LoginAction"

         path="login"

         scope="session"

         validate="true"

         input="error.jsp"

         redirect="false"

         >

         <forward

           name="sucess"

           path="sucess.jsp"/>  

     </action>

   </action-mappings>

</mystruts-config>

在上面的配置文件里,首先呢,如果需要关联外部的DTD文档,有三种方式:

1.       使用内部DTD  直接定义

2.    使用外部DTD  <!DOCTYPE mystruts-config SYSTEM "struts-config.dtd">

3.使用公共的DTD   <!DOCTYPE mystruts-config PUBLIC  "struts-config.dtd">

每个<form-bean>对应每个formBean模型,并以属性name代表制定要传给的xxxFormBeantype代表xxxForm的完整路径。

    action-mapping里的<action>元素:name属性代表要传递给ActionFormBeantype属性制定Action的完整类名,path制定要访问的Action路径,scope制定要存放的范围,validate制定是否需要进行表单验证,input制定表单验证失败后的转发路径,redirect制定是否需要重定向。还有一个<forward>是来制定要转发的路径。

现在对struts框架了解后,也说了怎么实现的。下面是它的作用:

1.获取表单内容,并组织生成参数对象
2.根据请求的参数转发请求给适当的控制器
3.在控制器中调用业务接口
4.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现
5.做一些简单的校验或是国际化工作
  • 大小: 29.7 KB
  • 大小: 29.4 KB
0
0
分享到:
评论

相关推荐

    模拟struts2框架代码.rar_模拟struts框架

    总结来说,模拟Struts2框架的实现主要包括以下几个部分: 1. 创建Action类并定义业务逻辑方法。 2. 配置Action映射,指定Action类、方法和URL路径。 3. 实现和配置拦截器,以增强Action的执行过程。 4. 设计视图层...

    模拟Struts框架

    模拟Struts框架

    用servlet模拟struts_mvc框架

    **Servlet模拟Struts_MVC框架详解** 在Java Web开发中,MVC(Model-View-Controller)模式是一种广泛应用的设计模式,它将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可扩展性。Struts是Apache组织...

    自定义Ajax框架,struts框架的模拟,特效代码

    在IT行业中,构建一个自定义Ajax框架和模拟Struts框架是一项高级技能,涉及到Web开发的核心技术。Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它允许页面在不重新加载整个页面的...

    模拟struts框架

    通过这个模拟Struts框架,初学者可以动手实践,从创建简单的Hello World应用开始,逐步深入到复杂的业务场景,从而对Struts框架有更全面的理解。同时,这也有助于为学习其他MVC框架,如Spring MVC打下坚实的基础。

    Servlet简单模拟Struts2

    在本主题"Servlet简单模拟Struts2"中,我们将探讨如何利用Servlet来实现类似Struts2框架的一些关键功能,包括请求拦截、XML配置解析、动态代理以及日志拦截。 首先,让我们了解一下Struts2框架的核心特性。Struts2...

    基于struts框架的购物车系统

    本项目“基于Struts框架的购物车系统”旨在提供一个实际的电商场景模拟,帮助学习者理解和掌握如何在实际项目中运用Struts框架。 【描述】提到的实用性意味着这个购物车系统可以用于课程设计,同时具备扩展性,可以...

    servelt模拟struts1框架

    总结来说,使用Servlet模拟Struts1框架主要涉及以下几个步骤: 1. 创建并解析XML配置文件,获取ActionMapping。 2. 实现请求解析,找到匹配的ActionMapping。 3. 创建ActionForm对象,封装请求参数。 4. 调用业务...

    servlet模拟struts1工作原理

    总之,模拟Struts1的过程是一个很好的学习方式,它帮助开发者理解MVC模式和框架如何协调工作,同时也能提升对Servlet的理解。实际开发中,虽然Struts1已经被Struts2和其他现代框架取代,但了解其工作原理对理解和...

    基于STRUTS框架的网上订房系统论文

    Struts框架作为一款基于MVC(Model-View-Controller)设计模式的经典框架技术,在当前Web应用开发中占据着重要地位。MVC模式将应用程序分为三个核心组成部分:模型(Model)、视图(View)和控制器(Controller)。...

    struts2框架源码

    Struts2是一个强大的MVC(Model-View-Controller)框架,它是Apache软件基金会下的一个开源项目,被广泛用于Java Web应用程序的开发。该框架的主要目标是简化开发过程,提高代码的可维护性和可测试性。这里我们将...

    自己模拟实现struts的dispatcherAction

    实际的Struts框架在DispatcherAction的实现上还考虑了拦截器(Interceptor)、多视图(多个Forward)支持、国际化(Internationalization)等问题,模拟实现时也可以考虑这些增强功能。 通过以上步骤,你可以理解...

    struts2框架模拟-教学示范代码

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护、结构清晰的web应用的工具。本教学示范代码是针对Struts2自定义框架的实践操作,旨在帮助...

    模拟STRUTS的小项目

    这个小项目显然是为了帮助开发者理解和实践Struts框架的核心概念和技术。在本文中,我们将深入探讨Struts框架的基本原理、主要组成部分以及如何通过模拟项目来学习它。 **1. Struts框架概述** Struts是一个基于MVC...

    仅使用了struts1框架

    Struts1框架是Java Web开发中的一个经典框架,由Apache软件基金会维护,它基于Model-View-Controller(MVC)设计模式,旨在简化企业级应用的开发。在本项目中,仅使用了Struts1来实现一个未连接数据库的简单登录功能...

    模拟struts

    在"模拟Struts"这个项目中,你可能已经尝试实现了Struts框架的核心功能,让我们深入探讨一下Struts的关键知识点。 1. **MVC设计模式**:MVC是一种将业务逻辑、数据和用户界面分离的设计模式。在Struts中,模型...

    Struts框架所需Jar包

    Struts框架是Java Web开发中一个非常重要的MVC(Model-View-Controller)框架,它为构建基于J2EE的应用程序提供了一种可扩展且结构化的解决方案。在使用Struts框架进行开发时,确保拥有正确的Jar包是至关重要的,...

    仿struts框架

    在提供的文件列表中,"hotel"可能是模拟的一个示例项目或者模块,展示了如何在仿struts框架下开发酒店预订系统。这可能包括了酒店相关的Action类、视图JSP页面、以及对应的配置信息。通过分析和运行这个示例,我们...

    模拟Struts功能--最后的一些实体bean以及源码下载

    在"模拟Struts功能--最后的一些实体bean以及源码下载"这个主题中,我们可以深入探讨Struts框架的核心概念、实体Bean的作用以及如何通过源码学习Struts的工作原理。 首先,让我们了解一下Struts框架的基础。Struts...

Global site tag (gtag.js) - Google Analytics