(一)一个简单的Struts程序

一、Struts1.x介绍

      众所周知,Struts是JavaWeb开发中的常用框架,但是框架有什么用?Struts又充当什么角色呢?
      框架被设计出来,提高了代码的重用性,很多重复性的的底层操作都在框架中被封装好了,所以开发者只需要关注他的业务逻辑,开发效率就大大地提高了。
      JavaWeb开发中经常用到MVC模式,M是指Model(模型),专注于业务逻辑、数据的存储和处理等,V是View(视图),顾名思义就是在客户端能看到的页面,而C是指Control(控制),在模型层和视图层之间搭建一条桥梁。MVC模式结构清晰、层次分明、高内聚低耦合、重用性好等特性是它成为JavaWeb开发中的主流模式。
      Struts1.x在MVC中主要充当Control的角色,它既能调用模型层的操作,又能控制页面跳转,将数据传给前端页面。接下来,我们将要开始第一个Struts1.x程序。

二、Struts1.x程序的基本组成结构

1、ActionServlet:它是整个Struts框架的中央控制器,包括请求的接收、分发、处理和页面跳转及渲染。它是Struts自带的Servlet类,需要在web.xml中配置,并初始化config参数,这个参数指定struts配置文件的位置。

2、struts配置文件:是一个xml格式的文件,不配置的话默认是/WEB-INF/struts-config.xml。

3、ActionForm:封装、验证客户提交过来的表单数据,并传入Action中。

4、Action:用户自定义的Control类,需要继承Action类并重写execute方法,在execute方法里面进行逻辑代码的调用和处理,并返回ActionForward控制页面跳转。

5、ActionForward:根据配置文件的标签配置的数据,控制页面跳转。

三、一个简单的登录程序

1、web.xml配置文件

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

解析:
在这个文件中配置一个初始化的servlet,它是整个Struts1.x的中央控制器。它有一个config初始化参数,指定了struts配置文件的位置。它的映射是/。这里简析一下/和/的区别,/既可以控制页面跳转到CGI程序,即Action类,也可以控制页面跳转到.jsp等带有后缀的页面。但是/*只能控制页面跳转到Action,不能跳到前端页面。

2、struts配置文件

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE struts-config PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
        "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>

    <form-beans>
        <form-bean name="myForm" type="com.struts.form.LoginForm"></form-bean>
    </form-beans>
    <action-mappings>
        <action path="/login" type="com.struts.action.LoginAction" name="myForm" input="/error.jsp">
            <forward name="success" path="/success.jsp"></forward>
            <forward name="fail" path="/login.jsp"></forward>
        </action>
    </action-mappings>
</struts-config>

解析:
“form-bean”标签是用来配置ActionForm的,用于接收客户端提交过来的数据,“action”标签是用来配置控制类的,即Action。这个标签中path属性配置用户请求Action所需要的路径;name属性是指这个Action用哪个ActionForm接收数据,在“form-bean”标签中有配置,填写“form-bean”标签中的name属性的值即可。“action”标签的子标签“forward”则控制页面跳转,与Action中excute的返回值ActionForward相呼应,“name”属性与ActionForward中的“forwardName”相呼应,“path”属性则是要跳转到的页面。

3、ActionForm

package com.struts.form;

import com.struts.bean.Person;
import org.apache.struts.action.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by 程序猿 on 2017/5/15 0015.
 */
public class LoginForm extends ActionForm {

    private String account;
    private String password;

    public String getAccount() {
        return account;
    }

    public String getPassword() {
        return password;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

解析:
定义了全局属性和getter以及setter方法,用于封装用户提交过来的参数。用户提交过来的参数名要和属性名字一样。此外它还有validate方法,用于对用户提交的数据进行校验。这个放到以后再讲。

4、Action

package com.struts.action;

import com.struts.form.LoginForm;
import org.apache.struts.action.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Created by 程序猿 on 2017/5/15 0015.
 */
public class LoginAction extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        LoginForm loginForm = (LoginForm) form;
        if("1".equals(loginForm.getAccount()) && "2".equals(loginForm.getPassword())){
            return mapping.findForward("success");
        }
        return mapping.findForward("fail");
    }
}

解析:
这个类主要处理业务逻辑,并进行页面跳转,通过mapping.findForward(“xxx”)跳转到struts配置中“forward”标签中指定的页面。

四、总结

一个简单的Struts登录程序就到此为止,透过这个程序中我们可以看到Struts开发中最基础的部分,也是必不可缺的部分,最后我们在捋一下思路。

  1. ActionServlet:Struts框架自带Servlet,在web.xml中配置,初始化参数指定struts配置文件的位置。它是整个Struts程序中的核心程序。
  2. struts配置文件(默认是/WEB-INF/struts-config.xml):根结点是“struts-config”标签,下一级结点中比不可缺的是actionform有关配置和action有关配置。
  3. ActionForm:封装客户端请求数据,全局属性名与客户端提交的参数名一样。

  4. Action:主要是execute方法,在里面处理业务逻辑,并返回ActionForward控制页面跳转。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值