传智播客Java培训---Struts1.X

     从今天开始就正式进入到冲刺班了,在冲刺班的课程中,我们主要要学习的技术是Struts、Spring、Hibernate三大框架、Ajax、oracle、luncene/compass、cvs/svn、UML、JPA和WebService,其中三大框架,Ajax是一个讲三天, oracle讲四天,其余的基本上都是讲一天,其他的时间是项目实战,到冲刺班结束总共做三个项目:jbpm与OA项目,数据采集系统,还有最后七天要讲的3GAndroid应用开发。这一部分课程是我们这整个课程中最最重要的部分,这部分内容学的好坏跟毕业后找的工作的好坏是直接挂钩的,真正的考验到来了,这些技术以前只是听说过,但是全部没有接触过,要真正掌握还是很有难度的,每一项技术都是一座大山啊,慢慢爬吧!

     今天我们开始学习了第一个框架Struts, Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。现在的主流应用的为两个版本:Struts1.x, Struts2.x,我们今天学习的是Struts1.x,在后续的课程中会继续学习Struts2.x。使用Struts1.x前需要先去Apache公司网站下载,现在最新的版本是Struts1.4.0,解压缩后将lib目录下的jar包放入Tomcat下的WEB-INF/lib目录下,然后我们就可以在项目中使用了。今天主要讲了struts1.x的实现原理,老师带我们翻阅了底层代码并简单模拟了实现流程,使我们对整个框架有了更加深入的认识。
     Struts1的总控制器ActionServlet是一个servlet。我们需要在web.xml中对整个servlet进行配置,使servlet是随系统启动而加载,并让servlet的映射为*.do的形式。在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。
web.xml配置信息
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<--设置优先级, servlet随服务器启动而加载-->
<load-on-startup>0</load-on-startup>
<--配置struts-config.xml的初始化参数-->
<init-param>
 <param-name>config</param-name>
 <param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<--执行所有后缀为.do的请求-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>

struts-config.xml配置信息,是struts1的核心部分
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
        "
http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<--name属性是formbean的唯一标识,type表示formbean的完整路径-->
<form-beans>
 <form-bean name="loginFrom" type="cn.itcast.struts.form.LoginForm"></form-bean>
</form-beans>
<--表示的是多个action-mapping的集合 action中的path是对action的唯一标识,格式为请求路径名后面去掉.do然后再前面加/,name属性指定formbean的名称,scope属性执行formbean的作用域,默认为session,type属性表示继承action的类的全路径-->
<action-mappings>
 <action path="/login" name="loginFrom" scope="request" type="cn.itcast.struts.action.LoginAction">
 <-- name属性 ActionForward对象的标识,在Action Bean类的execute()方法中,
ActionMapping对象的findForward()方法就是根据此标识来查找相应的ActionForward对象。 Path属性指定ActionForward 的URI,redirect如果设置为 true, 控制被重定向,缺省设置为false(转发)-->
 <forward name="success" path="/success.jsp" redirect=”false”></forward>
 <forward name="error" path="/error.jsp" redirect=”false”></forward>
 </action>
</action-mappings>
</struts-config>
Struts 配置对ActionForward提供两个级别嵌套:
上面的配置是Local(局部)ActionForward,只对当前action-mapping中的action对象有效还有一种是Global(全局)ActionForward 对整个应用中的所有Action 对象均有效。
<struts-config>
 <global-forwards>
  <forward name="success" path="/success.jsp" redirect=”false”></forward>
  <forward name="error" path="/error.jsp" redirect=”false”></forward>
 </global-forwards >
</struts-config>
     如果两个级别的嵌套同时存在,则局部ActionForward的优先级要高于全局的。
     ActionServlet通过调用RequestProcessor对象的process()方法来委托其处理客户端请求,用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。ActionServlet在用户提交请求时将数据放到对应的formBean对象中的成员变量中。控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。Action一般只包含一个excute()方法,它负责执行相应的业务逻辑,完毕后返回一个ActionForward对象。服务器通过ActionForward对象进行转发或者重定向工作。Action将业务处理的不同结果返回一个目标响应对象给总控制器。总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。最后目标响应对象将结果传递给资源对象,将结果展现给用户。
   
l
Struts优点:
Struts拥有强大标记库,灵活运用,能大大提高开发效率
l 简单的信息编辑
l 高效的后台验证
l 增强了代码的可维护性,重用性
l Struts并不一定是为了减少工作量,它的作用是使逻辑处理与页面显示分开,编程思路更加清晰.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值