struts学习笔记1

1.开发struts应用程序的步骤
 1.新建项目
 2.引入jar包
 3.准备视图文件
   *创建jsp文件
   *定义action的路径为 login.do(约定用*.do的形式,其它形式也可以)
   *注意表单元素的名称(用户名:username ,密码:psw)
 
 4.定义封装表单信息的formbean
   *该FormBean 必须继承ActionForm,这是struts框架规定
   *用于封装login.jsp页面表单数据(username,psw)
   *该formbean的属性必须和页面中的form表单的属性名字相同
 5.定义LoginAction
   *该LoginAction必须继承Action
   *穗宝Actin中的execute方法
  public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
   return null;
  }
     该方法有四个参数,
  *第一个参数 ActionMapping
  *第二个参数 ActionForm 页面表单的数据封装到ActionForm(LoginForm中)对象
                           
  *第三个参数 HttpServletRequest
  *第四个参数 HttpServletResponse
 6.定义配置文件web.xml
   *  <!--
    配置struts的中央控制器ActionServlet,在目前的struts版本中,只能配置一个ActionServlet
    只要客户端的请求格式为*.do,就会执行ActionServlet
     -->
  <servlet>
   <servlet-name>actionServlet</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
   <!-- 当服务器启动的时候 ,加载Servlet,执行Servlet的init方法,数值越小,启动越早 -->
   <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
   <servlet-name>actionServlet</servlet-name>
   <!-- 执行所有的后缀名是*.do的请滶 -->
   <url-pattern>*.do</url-pattern>
  </servlet-mapping>
 7.定义struts的配置文件struts-config.xml,该文件是struts的核心配置文件

 <action-mappings>
     <!--
      action="${pageContext.request.contextPath}/login.do"
      path 表示客户端的请求路径,它代表代表代表action的唯一标识,path的值是请滶路径去悼.do
       例如:login.do  去悼.do login在加上/ /login
      name 属性指定FormBean的名字
      scope formbean作用域
      type  指定继承action的类所在的全路径
      -->
     <action path="/login" name="loginForm" scope="request"
     type="cn.itcast.struts.action.LoginAction">
     
     </action>
     </action-mappings>

 <!-- 配置formbean -->
     <form-beans>
      <!--
       name formbean 的唯一标识
       type formbean 所在的完整的类路径
       -->
      <form-bean name="loginForm" type="cn.itcast.struts.form.LoginForm"></form-bean>     
     </form-beans>

 8 加载配置文件
   修改步骤6
问题:
 1.为什么ActionForm的属性名称必须和页面表单的name属性相同?LoginForm为什么要继承ActionForm
  2.自动赋值的代码低层是怎么实现的?
 3.struts中LoginAction为什么要继承Action
 4.execute方法是谁调用的,该方法的参数是怎么传递过来的?


struts 运行流程
前提条件:当服务器启动时,调用ActionServlet init()方法进行初始化操作,在该方法中,加载struts-config.xml文件,
          读取配置文件到内存中
1.在login.jsp页面,提交路径方式是login.do,此时提交给struts的中央控制器ActionServlet
2.ActionServlet 先解析路径为/login 在struts-config配置文件查找<action>标签中path="/login"根本配置文件
,找到了Action标签
3.在action标签中 根据name属性,ActionServlet在formbean中找到相应的<form-bean>标签,根据标签的
type属性,创建formbean实例,封装页面的信息到formbean中
4.在action标签中,ActionServlet根据type属性实例化Action对象LoginAction对象,自动调用Action的
execute方法,把request对象,response对象,在第三步中生成的formbean对象,都作为execute方法的参数
传递给该方法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值