当前位置: 首页 > news >正文

初识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包
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.6.jar
struts2-core-2.3.8.jar
xwork-core-2.3.8.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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 重读《从菜鸟到测试架构师》-- 大促带来的灾难
  • MyEclipse/Eclipse的内存优化与内存不足的解决办法
  • FLEX RSL(让你的swf瘦身)
  • SVN1.6.3 教程 搭建服务器及myeclipse客户端使用
  • Python学习札记(三十五) 面向对象编程 Object Oriented Program 6
  • Flex SEO(Search engine optimization),让浏览器找到你的flash站点
  • [BSGS算法]纯水斐波那契数列
  • “天人项目网“亮相2009中国杭州电博会
  • 理解OAuth 2.0
  • 配置Flex Builder 使用Firefox进行调试
  • droppable
  • as3 error 列表
  • Flex Deep Link(深链接)
  • git全部使用步骤
  • flex常用快捷键
  • 【mysql】环境安装、服务启动、密码设置
  • conda常用的命令
  • extjs4学习之配置
  • Objective-C 中关联引用的概念
  • PHP那些事儿
  • Python 基础起步 (十) 什么叫函数?
  • 代理模式
  • 回顾2016
  • 记一次删除Git记录中的大文件的过程
  • 每天一个设计模式之命令模式
  • 人脸识别最新开发经验demo
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 如何在招聘中考核.NET架构师
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #define用法
  • #Linux(权限管理)
  • #pragma预处理命令
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (2)(2.10) LTM telemetry
  • (待修改)PyG安装步骤
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (十六)Flask之蓝图
  • (算法)区间调度问题
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (转) 深度模型优化性能 调参
  • (转)树状数组
  • .gitignore文件设置了忽略但不生效
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net 垃圾回收机制原理(二)
  • .NET企业级应用架构设计系列之技术选型
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解