`
Vksnail
  • 浏览: 42344 次
  • 性别: 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框架的功能,用java模拟实现struts2的基础功能。

    模拟Struts框架

    模拟Struts框架

    用servlet模拟struts_mvc框架

    这是一个用servlet模拟struts_mvc框架的一个案例,通过案例可以让我们更好的懂得MVC框架的运行原理(面试经常考)。

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

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

    Servlet简单模拟Struts2

    用sevrlet模拟Struts2的简单功能。从拦截请求、解析自定义xml数据文件以及动态生成action的代理去执行目标方法,并实现了简单的日志拦截【interceptor】

    servelt模拟struts1框架

    使用servlet模拟struts1的工作原理,解析xml,处理请求,自动封装数据

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

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

    模拟struts框架

    一个简易的struts模拟框架,对初学者有很大的帮助,

    基于Struts2+Hibernate5的教务管理系统项目实训

    本项目只是简单模拟教务管理系统的基本功能,通过熟悉的教务管理系统开发来综合训练Struts2和 Hibernate5框架技术的整合应用,并进一步提高项目实践能力。 项目实现的功能包括学生管理部分,教师管理部分和管理员管理...

    Struts原理学习(模拟)

    该资源是对struts框架进行模拟,该代码能带你更快的理解struts。

    struts2 Demo

    这是一个struts2框架的处理流程的demo,里面有struts2基本的配置和模拟登录的例子,以及struts2前台后后台的数据交互方式的解释,代码中有完整的注释帮助理解struts2的基本流程,同时对jstl和struts2的标签也有一定...

    ThinkPHP框架技术文档

    ThinkPHP框架技术文档 CHM格式 ThinkPHP(FCS)是一个开源的快速、兼容而且简单的面向对象的轻量级PHP开发框架,全称是Fast,Compatible&SimpleOOPPHPFramework。FCS框架是从Java的Struts结构移植过来的中文PHP开发框架...

    Struts开发在线考试系统\.pdf

    介绍目前流行的MVC设计模式以及基于MVC模式的Struts框架;通过模拟传统的考场考试,利用 Struts框架的优势设计出在线考试系统;给出了该系统的功能、模块划分、处理流程及关系表与部分代码,并以 该系统为例分析了Struts...

    基于Struts2学生选课管理系统.zip

    通过struts2框架,结合mysql数据库构建一个学生选课管理系统,来模拟学生选课登记的过程。Java、Struts2、web、内部含有比较详细的课设文档、很适合做为一个课程设计的参考材料。

    Struts做的电子银行

    使用Struts模拟的一个在线电子银行,功能齐全。使用了国际化,验证框架,tiles框架。

    java脱离J2EE写的web服务器模拟Tomcat、struts 和 hibernate

    该服务器是本人模拟Tomcat做的,同时实现了主流的两大框架:struts 和 hibernate的一些功能,做这个东西本是自娱自乐,所以有很多地方尚未完善,构造方法一大堆的参数也让人头疼。希望有兴趣的朋友可以提一些建议,...

    struts2.0.jar

    Struts 2.0框架中出现的许多特性旨在让Struts更容易使用: · 改进的设计: 与Struts 1相比,Struts 2的所有类都基于接口,核心接口独立于HTTP。这些API并不依赖服务器小程序API。 · 简化的Action: Struts 2 Action...

    (适合Struts 初学者)

    通过struts2框架(是 http://download.csdn.net/download/wuxinxing1981/10189157 的简化版本),结合mysql数据库构建一个学生报到管理系统,来模拟学生报到登记的过程。基本功能包含如下: 管理角色登录,登录不同...

    网上购物车系统

    网上购物车系统(Struts框架技术开发)

Global site tag (gtag.js) - Google Analytics