MVC Struts 具体是怎么实现的啊?? M:逻辑封装,JAVABEAN,V:视图,JSP,C:控制器,SERVLETSTRUTS是一个比较好的MVC结构,对上述结构更加细化。分为,JSP,ACTION,ACTIONFORM,JAVABEAN(封装业务逻辑),JAVABEAN(封装页面逻辑),SERVLET 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是指struts筐架本身的实现还是,它的应用?应用楼上说了实现主要用到了反射、XML解晰、和STL、servlet、jsp等这些技术 前提:::首先在你的 Tomcat 配置的应用主目录中创建一个目录,比方说 logonApp。在 logonApp 中创建目录 src 和 WEB-INF,在 WEB-INF 中创建目录 classes 和 lib,从 Struts 的分发中拷贝 struts.jar 到 lib 目录,而且也把拷贝 $CATALINA_HOME/common/lib/servlets.jar 到 lib 目录。从 Struts 的分发中拷贝所有的 struts*.tld 到 WEB-INF 目录。现在打开 Eclipse,你会看到四个 view。现在我们要建立一个新的项目,点击 File -> New Project,打开了一个窗口,在第一个窗格中选择 Java,在第二个窗格中选择 Java Project,点击 Next。输入项目名称(为了好记,就也叫 logonApp 吧),去掉 use default 复选框的对勾,浏览到 logonApp 目录,点击 Next。出现一个新的窗口,在 Source tab 上点击 Add Folder,添加 $APP_BASE/src,在 Default output folder 中填入 $APP_BASE/WEB-INF/classes,点击 Finish。点击 Window -> Open Perspective -> Resource,看看 .project 文件是否已经自动包含了 lib 目录中所有的 jar 文件。 struts 是一个mvc的模式,在你的程序中他只是一部分,所以你还可以设计一个mvc的模式,一般的业务逻辑不是放在servlet和bean中的,它应该放在你程序自己的mvc结构中的c(control)部分 struts的源代码就是公开的,自己回去看一看就可以了 struts是MVC模式的一个实现的框架,如同giftxi(alfred)所说,Model对应bean,View对应JSP页面,Controller对应Servlet。如果要应用struts,可以去看看源代码,当然,如果只是要用的话,去看doc就足够了。个人感觉,最核心的东西,还是servlet和action.xml(或struts-config.xml),学习的初期,从这两样上下手,比较容易有成就感,个人感觉。反之,后台部分的操作,可以在研究清楚了这两部分后再逐一地细化。 Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理.控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。 javabean实现了数据库操作层(M),jsp实现了业务外观层(V),struts-config.xml和action实现了业务逻辑(C). jsp-->Action Form-->Action,具体业务逻辑在action中实现,网上这种例子很多,找找看 JSP用于实现表现层,Servlet及JAVABEAN、EJB则用来完成需要进行复杂处理的任务。Servlet及JAVABEAN、EJB扮演控制器的角色:响应请求、创建beans(模型)或对象供JSP使用,并根据用户的行为,发送合适的页面给用户。JSP页面(视图),并没有包含业务逻辑,它只是简单地从Servlet中提取并插入动态的内容到静态页面模板中。View: 这是用户界面部分,与Web应用程序一样,主管应用程序与人之间的接口:一方面它为用户提供了输入手段,并触发应用逻辑运行;另一个方面,它又将逻辑运行的结果以某种形式显示给用户。 Controller: 该部分是用户界面与Model的接口;它解释来自于view的输入,将其解释成立系统能够理解的对象,同时它也识别用户动作,取出用户信息,并访问数据库执行业务逻辑;并根据执行结果构造Model数据,调用适当View为用户提供反馈。 Model: 存贮View显示所需的数据并封装数据处理逻辑,由Controller产生,供View显示。Struts应用有3个主要部件:一个Servlet Controller(由Struts提供,org.apache.action.ActionServlet,以下简称controller)及负责具体业务处理的Action类(org.apache.action.Action的基类);Jsp页面(viewer);应用的业务逻辑封装(model)。Struts 的中心控制器(ActionServlet)接受所有来自客户端的请求,并根据系统的配置(Struts-config.xml)路由HTTP请求到其它Action对象(开发者实现的org.apache.struts.action.Action的子类),在这些Action对象中会进行所有的业务操作,比如插入一条订单,修改一条记录。处理完毕,由Struts的ActionServlet转向到JSP页面,将处理结果返回给客户端。从这儿可以看出在Struts中ActionServlet担任了重要的角色,由它控制所有的程序流转,是MVC三个相对独立的部分协调工作,提供系统的完善功能 具体的文档去apache的网站看看就明白了!我开始学习时就是看的官方网站的文档,非常不错! StrutsStruts 框架完全是用 Java 写的,写时用了标准 J2EE API。另外,它还采用了几种著名的 J2EE 设计模式,比如模型-视图-控制器(Model-view-controller)和 FrontController。模型-视图-控制器(MVC)模型-视图-控制器(MVC)是一种设计模式,它在定义下面三个应用层时作了明确的区分。模型(model)是应用程序的数据和业务规则集合。通常被称作应用程序的业务逻辑。 视图(view)是应用程序的用户界面。 控制器(controller)定义了应用程序与用户输入及模型进行交互的方式。它被称作应用程序逻辑。 通过明确区分各个层,MVC 允许组成每个层的各个组件间松散地耦合。这使它更加灵活,并且可以重用代码。例如,如果您为一个应用程序开发了几个用户界面,那么就需要开发视图组件,因为各应用层间是松散耦合的。Struts 框架是 MVC 的视图和控制器组件。下面展示了 Struts 怎样映射为 MVC 框架。Struts 有三个主要组成部分:1. Action bean 2. ActionServlet 3. ActionForm bean 和定制的标记。 图 1. MVC 和 Struts 框架Action bean 和 ActionServlet Struts 提供了一个单独的 ActionServlet(org.apache.struts.action.ActionServlet)来处理所有的浏览器请求。这种类型的框架我们称之为 FrontController 模式。每个浏览器请求都由 Struts 的 Action 子类(org.apache.struts.action.Action 的子类)来处理。每个浏览器请求都被映射为 struts-config.xml 文件内的一个 Action 子类。ActionServlet 在初始化期间加载这种映射。要配置 Web 项目使其把所有的浏览器请求都传递给 ActionServlet,请把所有以 .do 结尾的 URI(例如 *.do)都映射为 Web 部署描述符中的 ActionServlet。然后您可以在 Struts 配置文件中为各个请求 URI(比如 /submit.do)提供实际的 Action 子类映射。ActionForm bean 浏览器请求可带参数。当用户提交 HTML 表单后,Struts 框架就把参数放在一个 org.apache.struts.action.ActionForm bean 中。您也可以用 ActionForm bean 把缺省值预先植入一个表单,这些缺省值可从数据库或其他的后端系统获得。如果用户在表单中输入了不正确的值,ActionForm 可以进行验证。您可以用以前的输入重新显示表单。定制的标记Struts 提供了许多支持 ActionForm bean 的 JSP 定制标记。这些定制的标记支持:1. 把从 ActionForm 子类中获得的值预先植入 HTML 表单。 2. 国际化,比如提供由用户语言环境决定的文本。 3. 逻辑,比如根据人们对页面的使用方式为其显示不同的标题。 刚开始学struts:,看自带的例子遇到了问题: struts 安装成功后,进入首页http://localhost:8080/struts-example/index.jsp,将鼠标移到 Register with the MailReader Demonstration Application 看到的 editRegistration.do?action=Create 在struts-config.xml文件里头找不到这个action/form,是怎么回事啊? 第二个问题:编辑index.jsp 看到: <logic:notPresent name="database" scope="application"> <font color="red"> ERROR: User database not loaded -- check servlet container logs for error messages. </font> <hr> </logic:notPresent> 首页显示时,没有出现过dataBase,所以应该有这个错误提示才对阿? 主要是应用了servlet,xml,java反谢技术。 java如何实现打印功能 struts存值 flash实现聊天远程交互 由JAVA 实现服务器 Socket实现通信 请问spring加了2.5的声明事务的命名空间后,打成可执行jar报错为什么? 谁有springside的视频共享以下啊 tomcat外接服务器的问题 这是JAVA语言么?什么意思啊,高人请解,急求,懂的帮帮我 百分求救,望懂TOMCAT5+MYSQL5的朋友进来指导,真的很急 struts的问题!在线等待,解决了就给分! 字符串分割成数组,这个好像不好弄.. 关于带参数的JAVA调用浏览器 struts 1.1 中配置COMMONDATASOURCE数据库连接池的问题
应用楼上说了
实现主要用到了反射、XML解晰、和STL、servlet、jsp等这些技术
首先在你的 Tomcat 配置的应用主目录中创建一个目录,比方说 logonApp。在 logonApp 中创建目录 src 和 WEB-INF,在 WEB-INF 中创建目录 classes 和 lib,从 Struts 的分发中拷贝 struts.jar 到 lib 目录,而且也把拷贝 $CATALINA_HOME/common/lib/servlets.jar 到 lib 目录。从 Struts 的分发中拷贝所有的 struts*.tld 到 WEB-INF 目录。现在打开 Eclipse,你会看到四个 view。现在我们要建立一个新的项目,点击 File -> New Project,打开了一个窗口,在第一个窗格中选择 Java,在第二个窗格中选择 Java Project,点击 Next。输入项目名称(为了好记,就也叫 logonApp 吧),去掉 use default 复选框的对勾,浏览到 logonApp 目录,点击 Next。出现一个新的窗口,在 Source tab 上点击 Add Folder,添加 $APP_BASE/src,在 Default output folder 中填入 $APP_BASE/WEB-INF/classes,点击 Finish。点击 Window -> Open Perspective -> Resource,看看 .project 文件是否已经自动包含了 lib 目录中所有的 jar 文件。
不是放在servlet和bean中的,它应该放在你程序自己的mvc结构中的c(control)部分
如果要应用struts,可以去看看源代码,当然,如果只是要用的话,去看doc就足够了。
个人感觉,最核心的东西,还是servlet和action.xml(或struts-config.xml),学习的初期,从这两样上下手,比较容易有成就感,个人感觉。反之,后台部分的操作,可以在研究清楚了这两部分后再逐一地细化。
控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。
流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。
Controller: 该部分是用户界面与Model的接口;它解释来自于view的输入,将其解释成立系统能够理解的对象,同时它也识别用户动作,取出用户信息,并访问数据库执行业务逻辑;并根据执行结果构造Model数据,调用适当View为用户提供反馈。
Model: 存贮View显示所需的数据并封装数据处理逻辑,由Controller产生,供View显示。Struts应用有3个主要部件:一个Servlet Controller(由Struts提供,org.apache.action.ActionServlet,以下简称controller)及负责具体业务处理的Action类(org.apache.action.Action的基类);Jsp页面(viewer);应用的业务逻辑封装(model)。Struts 的中心控制器(ActionServlet)接受所有来自客户端的请求,并根据系统的配置(Struts-config.xml)路由HTTP请求到其它Action对象(开发者实现的org.apache.struts.action.Action的子类),在这些Action对象中会进行所有的业务操作,比如插入一条订单,修改一条记录。处理完毕,由Struts的ActionServlet转向到JSP页面,将处理结果返回给客户端。从这儿可以看出在Struts中ActionServlet担任了重要的角色,由它控制所有的程序流转,是MVC三个相对独立的部分协调工作,提供系统的完善功能
Struts 框架完全是用 Java 写的,写时用了标准 J2EE API。另外,它还采用了几种著名的 J2EE 设计模式,比如模型-视图-控制器(Model-view-controller)和 FrontController。模型-视图-控制器(MVC)
模型-视图-控制器(MVC)是一种设计模式,它在定义下面三个应用层时作了明确的区分。
模型(model)是应用程序的数据和业务规则集合。通常被称作应用程序的业务逻辑。
视图(view)是应用程序的用户界面。
控制器(controller)定义了应用程序与用户输入及模型进行交互的方式。它被称作应用程序逻辑。 通过明确区分各个层,MVC 允许组成每个层的各个组件间松散地耦合。这使它更加灵活,并且可以重用代码。例如,如果您为一个应用程序开发了几个用户界面,那么就需要开发视图组件,因为各应用层间是松散耦合的。Struts 框架是 MVC 的视图和控制器组件。下面展示了 Struts 怎样映射为 MVC 框架。Struts 有三个主要组成部分:
1. Action bean
2. ActionServlet
3. ActionForm bean 和定制的标记。
图 1. MVC 和 Struts 框架Action bean 和 ActionServlet
Struts 提供了一个单独的 ActionServlet(org.apache.struts.action.ActionServlet)来处理所有的浏览器请求。这种类型的框架我们称之为 FrontController 模式。每个浏览器请求都由 Struts 的 Action 子类(org.apache.struts.action.Action 的子类)来处理。每个浏览器请求都被映射为 struts-config.xml 文件内的一个 Action 子类。ActionServlet 在初始化期间加载这种映射。要配置 Web 项目使其把所有的浏览器请求都传递给 ActionServlet,请把所有以 .do 结尾的 URI(例如 *.do)都映射为 Web 部署描述符中的 ActionServlet。然后您可以在 Struts 配置文件中为各个请求 URI(比如 /submit.do)提供实际的 Action 子类映射。ActionForm bean
浏览器请求可带参数。当用户提交 HTML 表单后,Struts 框架就把参数放在一个 org.apache.struts.action.ActionForm bean 中。您也可以用 ActionForm bean 把缺省值预先植入一个表单,这些缺省值可从数据库或其他的后端系统获得。如果用户在表单中输入了不正确的值,ActionForm 可以进行验证。您可以用以前的输入重新显示表单。定制的标记
Struts 提供了许多支持 ActionForm bean 的 JSP 定制标记。这些定制的标记支持:
1. 把从 ActionForm 子类中获得的值预先植入 HTML 表单。
2. 国际化,比如提供由用户语言环境决定的文本。
3. 逻辑,比如根据人们对页面的使用方式为其显示不同的标题。
看到:
<logic:notPresent name="database" scope="application">
<font color="red">
ERROR: User database not loaded -- check servlet container logs
for error messages.
</font>
<hr>
</logic:notPresent> 首页显示时,没有出现过dataBase,所以应该有这个错误提示才对阿?