Struts2小结1

   1Struts2的介绍:Struts2不是在Struts1的基础发展而来的。

  2Struts2的环境搭建

     步骤一:找到开发struts2应用需要的jar文件

struts2-core-2.x.x.jar :Struts 2框架的核心类库

xwork-2.x.x.jar :XWork类库,Struts 2在其上构建

ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),                 struts2框架通过其读写对象的属性

freemarker-2.3.x.jar :Struts 2UI标签的模板使用FreeMarker编写

commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日                             志包来支持Log4JJDK 1.4+的日志记录。

commons-fileupload-1.2.1.jar :文件上传组件,2.1.6版本后必须加入此文                            

       步骤二:编写struts2的配置文件

1、创建struts.xml文件文件名称必须时struts并且该文件错放在         /WEB-INF/classes文件夹下(即在src目录下创建此文件即可以自动       放入要求的目录).

2、文件的内容如下:

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

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

<struts>

</struts>   

        步骤三:在web.xml文件中加入Struts2MVC框架启动配置

                 添加内容如下:

      <filter>

      <filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.Strut    sPrepareAndExecuteFilter</filter-class>

<!-- 自从Struts 2.1.3以后,下面的FilterDispatcher已经标注为过时    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</f ilter-class> -->

</filter>

<filter-mapping>

      <filter-name>struts2</filter-name>

       <url-pattern>/*</url-pattern>

</filter-mapping>

注释:在StrutsPrepareAndExecuteFilterinit()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作

3、第一个Struts2的登录案例

1)第一步创建登录界面:

<form>

            <h1>

            用户登录界面

            </h1>

            <form action="./login.action" method="post">

            用户名:

            <input type="text" name="username" id="username" />

            <br />

            密码:

            <input type="password" name="pass" id="pass" />

            <br />

            <input type="submit" value="登录" />

            </form>

2)创建Sturts2Action处理类

package redarmy.shop.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

    private String username;

    private String pass;

    // 是从jsp页面获取username的值

    public String getUsername() {

        return username;

    }

    // 相当于把其存入到request

    public void setUsername(String username) {

        this.username = username;

    }

    public String getPass() {

        return pass;

    }

    public void setPass(String pass) {

        this.pass = pass;

    }

    @Override

    public String execute() throws Exception {

        return SUCCESS;

    }

}

3)创建其配置文件

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

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

<struts>

   <package name="" extends="struts-default" namespace="/">

         <action name="login" class="redarmy.shop.action.LoginAction">

            <result name="success">/success.jsp</result>

         </action>

   </package>

</struts>

4、解释:

a、 package包对一类action的封装 extends继承了struts-default.xml文件中struts-default默认的包,其包提供了struts2基本处理(比如拦截器,文件上传下载,参数的处理等等)。Namespace问包提供一个访问的命名空间。

b、 actionjsp页面中传递请求class指明的是该请求交给此类来处理,默认的情况交给此类中的execute方法处理 也可以通过method属性来指明该action由其某个方法处理

c、 result代表以上类处理返回的结果 此结果可以由name属性指定其结果值 type指明其结果类型默认的是dispatcher类型(此类型是与jsp页面交互)。

通过发布此项目即可测试。

5、通过此项目简单了解struts2的处理流程如下:

            Jsp:<form action=login.action>发送请求

²  web.xml文件中的StrutsPrepareAndExecuteFilter:读取struts.xml

²  通过拦截器处理找到action name=login

²  通过此action对应类中的setXxx()getXxx()方法保存并专递数据到jsp

²  执行此action类指明的方法默认是execute()方法并返回结果

²  根据处理的结果使用result name的属性进行匹配 然后根据其type属性类型执行结果集操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值