浅谈Struts2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈Struts2相关的知识,希望对你有一定的参考价值。

浅谈Struts2

一、Struts2引言

  1、Struts2框架的概念

    解决的MVC开发过程中,控制器(Controller)的通用问题。

    a、什么是MVC开发

      MVC开发是一种编程思想,由设计者人为的把一个项目,划分为三个层次:M(Module模型层)V(View视图层)C(Controller控制层)。

    b、javaEE编程体系中MVC编程思想的实现

      (1)V(View视图层)------jsp、html

      (2)C(Controller控制层)------Servlet

      (3)M(Module模型层)------javaBean(Service+DAO+Entity)

        模型是对客观世界的一直模拟。

    c、MVC的好处

      (1)便于多个程序员协同开发,提高开发效率。

      (2)解耦和、利于代码维护。

    d、Servlet作为控制器存在许多问题

      (1)收集数据的代码冗余、需要手工处理中文字符集、手工进行类型转换。

      (2)路径跳转,硬编码在了Servlet中,不利于后续的修改维护。

  2、一个最简单的Struts2程序

    a、环境搭建

      将Straut2的相关jar包导入lib文件夹中,将struts.xml放置在跟src根目录下。

      web.xml中配置struts2的核心过滤器:      

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

     b、编码

      implements Action接口,实现execute()方法:

public class FirstAction implements Action{
    
    public String execute()throws Exception{
        System.out.println("---this is first action---");
        //跳转页面的路径
        return "success";
    }
}

       配置struts.xml

<struts>
    <package name="action1" extentd="struts-default">
        <action name="first" class="com.liquidxu.struts2.FirstAction">
            <result name="success">/admin/index.jsp</result>
        </action>
    </package>
</struts>

       FirstAction类中execute()方法的返回值"success"跟配置文件中的result name是保持一致的,<result>节点中的内容/admin/index.jsp才是真正跳转的路径。将跳转路径从代码中转移到配置文件中,利于代码的维护。

      ps、大家会发现execute()方法中是没有request跟response的,这时我们就要介绍一下Struts2的一个重要的工具类ServletActionContext。该工具类必然是静态的,可以在直接拿来使用:HttpServletRequest reqeust = ServletActionContext.getRequest();HttpServletResponse respones = ServletActionContext.getResponse();当我们拿到request对象的时候,自然可以通过request对象获得session跟ServletContext。

      ps、Sevlet创建:一个Servlet类型只会创建一个实例。

        Action创建:一个Action类型,在每次一请求,都会创建一个Action对象。

稿源:勤快学QKXue.NET

扩展阅读:

浅谈Struts2(一)
http://qkxue.net/info/29848/Struts-2
浅谈Struts2(二)
http://qkxue.net/info/30071/Struts-2
浅谈Struts2(三)
http://qkxue.net/info/30478/Struts-2

以上是关于浅谈Struts2的主要内容,如果未能解决你的问题,请参考以下文章

浅谈Struts2

浅谈Struts2

浅谈Struts2

浅谈Struts2

浅谈struts2标签中的2个非经常常使用的标签的使用方法(radio和select)

浅谈Struts2的过滤器