Struts入门

Struts入门

基本概述

    StrutsApache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在20043月成为ASF的顶级项目。它通过采用Java ServletJSP技术,实现了基于Java EE Web应用的Model-View-ControllerMVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

    在Struts中,已经由一个名为ActionServletServlet充当 控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在MVC的 模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts里的ActionFormAction两个需要继承实现超类。在这里,Struts可以与各种标准的数据访问技术结合在一起,包括Enterprise Java BeansEJB, JDBCJNDI。在Struts的视图(View)端,除了使用标准的JavaServer PagesJSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如Velocity TemplatesXSLT等。通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。

PS:这是Struts1.x的介绍,个人认为先学好Struts1.x,再学2.x,也并没有什么大问题。

开发资料:Struts1.3config配置详解

 

为什么会有Struts

    Struts作为一种规范,在一定程度上约束程序员的自由,但是正是因为其规范作用,使其在各公司、各行业中成为标准,这样就减少了公司间合作时、程序员交流时的冲突,使开发效率大幅度提高,有利于程序的维护和扩展。

PSStruts1.x的缺陷也是很明显的,比如action的单态,这在并发情况下就不是很好,ServletJSP耦合很强。不过通过Struts2.x可以解决其中的一些问题。

 

运行原理图

Struts入门_第1张图片


使用Struts框架开发的三种方式

1、手工开发

1.1、在IDE中(我用的是MyEclipse 10)建立Java Web项目

1.2、导入Struts Jar(我用的是Struts1.3)

1.3、编写jsp,编写actionForm(继承ActionForm),编写action(继承Action)

1.4、配置struts-config.xml文件,写好actionFormaction的对应关系

1.5、配置web.xml文件,写好ActionServlet的配置参数

1.6、测试

 

2、半手工半工具

2.1、在IDE中(我用的是MyEclipse 10)建立Java Web项目

2.2、鼠标右击项目名,找到MyEclipse下的Add Struts Capabilites...,配置好strut-config路径、Struts版本、ActionServlet单例对象的名字以及它对应的访问地址(一般来说都是*.do)、包名。

2.3、在struts-config.xml的源代码界面配置好actionFormaction的对应关系。

2.4、测试

 

3、全工具

3.1、在IDE中(我用的是MyEclipse 10)建立Java Web项目

3.2、鼠标右击项目名,找到MyEclipse下的Add Struts Capabilites...,配置好strut-config路径、Struts版本、ActionServlet单例对象的名字以及它对应的访问地址(一般来说都是*.do)、包名。

3.3、在struts-config.xml的设计界面图形化配置(具体操作可以搜索)

3.4、测试

 

 

案例:登录模块

登录模块MVC模型图

Struts入门_第2张图片

源代码:Struts三种开发方法案例


小结

1struts1.x框架可以通过三种方式,手工、半手工半工具、全工具。

2actionForm中的setXxx方法必须对应jsp表单提交过来xxx

3struts-config.xml文件中<action>scope属性指的是actionForm的生命周期范围,默认是session,可以设置成request

4action都是单态的,包括ActionServer,这对网站并发有影响。

5、解决formaction的乱码问题,可用过滤器设置request,response,contentType的编码解决。

6struts-config.xml默认是放在WEB-INF目录下的,其实也可以放在其他地方,只需要在web.xml中配置ActionServer时,加入如下初始参数。

<init-param>

      <param-name>config</param-name>

      <param-value>/目录名/文件名</param-value>

</init-param>

7struts-config.xml这样的Struts配置文件是可以在web.xml中配置多个的,多个配置文件用”,”隔开就行了。

<init-param>

      <param-name>config</param-name>

      <param-value>/目录名/文件名1,/目录名/文件名2,/目录名/文件名3</param-value>

</init-param>


你可能感兴趣的:(mvc,struts,入门,开发文档,开发方式)