Struts2 フレームワークの原理: 1. インターセプターはリクエスト パスを解析します; 2. アクションの完全なクラス名を検索します; 3. Action オブジェクトを作成します; 4. Action メソッドを実行します; 5. 戻り値結果; 6. 解析を表示します。その原理は、ビジネス ロジック コントローラーをサーブレット API から完全に分離するインターセプター メカニズムに基づいており、コードの再利用性と保守性が向上します。 Struts2 フレームワークは、リフレクション メカニズムを使用することで、リクエストと応答を処理するための Action オブジェクトを柔軟に作成および管理できます。
このチュートリアルのオペレーティング システム: Windows 10 システム、DELL G3 コンピューター。
Struts2 は、MVC パターンに基づく Web 層フレームワークであり、インターセプター メカニズムを使用してユーザー リクエストを処理します。 Struts2 フレームワークの原理は次のとおりです:
1. インターセプターはリクエスト パスを解析します: ユーザーが Web アプリケーションにリクエストを送信すると、Struts2 フレームワークのインターセプターはリクエスト パスを解析します。リクエストパスを取得し、アクションの名前を取得します。
2. アクションの完全なクラス名を検索します: アクションの名前に従って、Struts2 フレームワークは構成ファイル内の対応する完全なクラス名を見つけます。これらの構成情報は通常、struts.xml ファイルで定義されます。
3. Action オブジェクトの作成: Struts2 フレームワークは、Action の完全なクラス名を見つけると、リフレクション メカニズムを使用してクラスのインスタンス (つまり、Action オブジェクト) を作成します。このようにして、リクエストごとに新しい Action オブジェクトが作成されます。
4. Action メソッドを実行します: Action オブジェクトが作成されると、インターセプターはリクエストの処理を ActionProxy に渡します。 ActionProxyはActionオブジェクトのプロキシオブジェクトであり、Actionオブジェクトのexecute()メソッドを呼び出すことで対応するビジネスロジックを実行します。
5. 返される結果: アクションが実行されると、文字列の結果 (結果コード) が返されます。この結果文字列は通常、ユーザーに結果を表示するために使用されるビュー (View) に関連付けられます。
6. ビュー分析: Struts2 フレームワークは、返された結果文字列に従って対応するビューを解析し、結果をユーザーに表示します。ビューには、JSP ページ、FreeMarker テンプレートなどを使用できます。
Struts2 フレームワークの原理は、ビジネス ロジック コントローラーをサーブレット API から完全に分離するインターセプター メカニズムに基づいており、コードの再利用性と保守性が向上します。同時に、Struts2 フレームワークはリフレクション メカニズムを使用することで、Action オブジェクトを柔軟に作成および管理し、リクエストとレスポンスの処理を実装できます。
古典的な MVC フレームワークとして、Struts2 フレームワークには多くの利点と欠点があります。以下は、Struts2 フレームワークの長所と短所の詳細な紹介です:
Struts2 フレームワークの利点:
1. リッチ タグライブラリ: Struts2 によって提供されます。タグ ライブラリが多数あり、開発効率を大幅に向上させ、ビュー層のコードを簡素化できます。
2. インターセプター機構: Struts2 は、インターセプター機構を使用してリクエストの前処理および後処理機能を実装します。この機構により、ビジネス ロジック コントローラーがサーブレット API から完全に分離され、コードの可読性が向上します。メンテナンス性。
3. 型変換と入力検証: Struts2 は、ユーザー入力を簡単に検証して処理できる、組み込みの型変換と入力検証機能を提供します。
4. 国際化サポート: Struts2 は国際化をサポートしており、さまざまな言語環境に応じて切り替えることができるため、アプリケーションのローカリゼーション機能が向上します。
5. プラグインのサポート: Struts2 は、フレームワークの機能を簡単に拡張できる豊富なプラグイン サポートを提供します。
6. 構成と展開が簡単: Struts2 フレームワークは明確な構造とシンプルな構成を備えており、簡単に展開および保守できます。
Struts2 フレームワークの の欠点:
1. インターセプターの依存関係の順序: Struts2 のインターセプターの依存関係の順序は固定されているため、次のような問題が発生する可能性があります。場合によっては、インターセプターの実行順序が正しくない場合があります。
2. パフォーマンスの問題: Struts2 は多数のリフレクション メカニズムを使用するため、特に多数のリクエストを処理する場合にパフォーマンスの問題が発生する可能性があります。
3. 急な学習曲線: Struts2 フレームワークは強力ですが、学習曲線は比較的急勾配であり、初心者が慣れるまでに時間がかかる場合があります。
4. コミュニティ活動: Struts2 は古典的な MVC フレームワークですが、他の新しいフレームワークの出現により、Struts2 のコミュニティ活動は減少しています。
要約すると、Struts2 フレームワークは豊富な機能と強力な拡張性を備えていますが、いくつかの欠点もあります。実際の開発では、プロジェクトの要件とチームのテクノロジースタックに基づいて、適切なフレームワークを選択する必要があります。
以上がStruts2フレームワークの原理とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

一、前言Struts2漏洞是一个经典的漏洞系列,根源在于Struts2引入了OGNL表达式使得框架具有灵活的动态性。随着整体框架的补丁完善,现在想挖掘新的Struts2漏洞会比以前困难很多,从实际了解的情况来看,大部分用户早就修复了历史的高危漏洞。目前在做渗透测试时,Struts2漏洞主要也是碰碰运气,或者是打到内网之后用来攻击没打补丁的系统会比较有效。网上的分析文章主要从攻击利用的角度来分析这些Struts2漏洞。作为新华三攻防团队,我们的一部分工作是维护ips产品的规则库,今天回顾一下这个系

Struts2框架的原理:1、拦截器解析请求路径;2、查找Action的完整类名;3、创建Action对象;4、执行Action方法;5、返回结果;6、视图解析。它原理基于拦截器的机制,使得业务逻辑控制器与Servlet API完全脱离开,提高了代码的可重用性和可维护性。通过使用反射机制,Struts2框架可以灵活地创建和管理Action对象,实现请求与响应的处理。

Vulhub漏洞系列:struts2漏洞S2-0011.漏洞描述:struts2漏洞S2-001是当用户提交表单数据且验证失败时,服务器使用OGNL表达式解析用户先前提交的参数值,%{value}并重新填充相应的表单数据。例如,在注册或登录页面中。如果提交失败,则服务器通常默认情况下将返回先前提交的数据。由于服务器用于%{value}对提交的数据执行OGNL表达式解析,因此服务器可以直接发送有效载荷来执行命令。2.vulhub漏洞利用:用vulhub复现漏洞可以省去环境的搭建过程,相当方便。vu

前言2018年8月22日,ApacheStrust2发布最新安全公告,ApacheStruts2存在远程代码执行的高危漏洞(S2-057/CVE-2018-11776),该漏洞由SemmleSecurityResearchteam的安全研究员ManYueMo发现。该漏洞是由于在Struts2开发框架中使用namespace功能定义XML配置时,namespace值未被设置且在上层动作配置(ActionConfiguration)中未设置或用通配符namespace,可能导致远程代码执行。同理,u

0x00简介Struts2是Apache软件组织推出的一个相当强大的JavaWeb开源框架,本质上相当于一个servlet。Struts2基于MVC架构,框架结构清晰。通常作为控制器(Controller)来建立模型与视图的数据交互,用于创建企业级Javaweb应用程序,它利用并延伸了JavaServletAPI,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。0x01漏洞

0x00简介Struts2框架是一个用于开发JavaEE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了JavaServletAPI,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。0x01漏洞概述ApacheStruts22.3.x系列启用了struts2-struts1-plugin插件并且存在struts2-showcase目录,其漏洞成因是当ActionMe

1.概述Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,后来成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的Model-View-Controller〔MVC〕设计模式的应用框架〔WebFramework〕,是MVC经典设计模式中的一个经典产品。在JavaEE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServerPages(JSP)的源代码中,采用HTM

目前,Apache官方已经发布了版本更新修复了该漏洞。建议用户及时确认ApacheStruts产品版本,如受影响,请及时采取修补措施。一、漏洞介绍ApacheStruts2是美国阿帕奇(Apache)软件基金会下属的Jakarta项目中的一个子项目,是一个基于MVC设计的Web应用框架。2018年8月22日,Apache官方发布了ApacheStruts2S2-057安全漏洞(CNNVD-201808-740、CVE-2018-11776)。当在struts2开发框架中启用泛namespace功


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック



