初识Struts2

初识Struts2

基础了解:
       框架的概念:
            框架(framework)是整个或部分系统的可重用设计概念上的结构,用于解决或处理复杂的问题。
使用框架的好处:
    可重用代码、
    可重用设计、
    分布式组件管理,便于组件的复用与分离、
    结构统一
    降低开发成本
 
JavaEE中的框架:
    Struts:java领域最著名的框架,是MVC设计的事实标准。
    Spring:JavaEE应用程序的集成框架,任何java程序都能从中受益。
    Hibernate:最著名的ORM框架,实现数据层操作。
 
 
Struts2框架的介绍
        Struts2是Struts1的下一代产品,是再Struts和webwork的技术基础上进行了合并的全新MVC框架。
因为Struts2框架基本以WebWork为技术核心,可以说Struts2相当于WebWork2.0。
 
Struts2相对于Struts1的优势:(八个知识点重点学习)
      (1)与JSP/Servlet低耦合
      (2)业务模型不需要考虑线程安全
      (3)业务模型为POJO类
      (4)表单模型的简化
      (5)丰富的视图技术支持
      (6)AOP和拦截器的使用
      (7)完善的数据类型转换
      (8)OGNL表达式的支持
 
 
Struts框架是Apache致力于推高JavaEE技术标准的产物,MVC框架的公认标准。
传统的Model2设计的缺陷:核心控制器在新增业务模型时需要同步修改Servlet业务模型,与ServletAPI耦合性高。

架构Struts2框架的步骤
(1)导入框架所需的jar包
(2)配置web.xml的核心控制器
<!-- 配置Struts核心控制器 -->
<filter>
      <filter-name>struts</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
  <!-- 配置映射 -->
<filter-mapping>
      <filter-name>struts</filter-name>
      <url-pattern>*.action</url-pattern>
</filter-mapping>

(3)创建模型

public class LoginAction extends ActionSupport {
    @Override
    public String execute() throws Exception {
         return SUCCESS;
    }
}

(4)配置Struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "struts-2.1.7.dtd" >
<struts>
   <package name="niit" extends="struts-default">
        <action name="login" class="com.niit.action.LoginAction">
           <result name="input">WEB-INF/error.jsp</result>
           <result name="success">login.jsp</result>
           <result name="login">tag.jsp</result>
    </action>
   </package>
</struts>
搭建注意点:
    Struts2以过滤器作为请求的拦截手段
    核心控制器为StrutsPreparenAndexecuteFilter
    Struts.xml需要配置在classpath路径下
    Struts.xml中的package必须配置extends属性,且值为struts-default
Struts2执行流程:
简单描述:
           客户端发送一个请求,请求经过核心控制器(filter) ,核心控制器会根据请求的URL找到在配置文件中对应的Action,执行action前会执行相关拦截器操作,然后找到对应的返回视图,将处理得到的数据一并返回给客户端。
原文地址:https://www.cnblogs.com/chuangege/p/6478579.html