Struts由来:
<1>:Servlet + jsp
<2>:Struts1
<action path="" type="">
<forward />
</action>
Struts2:
Struts WebWork
Struts2
Strut1的缺点:
<1>:侵入性很强(Servlet)
<2>:FORM表单
<3>:资源访问
Struts2是否是struts1的升级版?
Filter
开发struts2步骤:
<1>:新建Webproject
<2>:导入相应的jar文件
struts2-core-2.0.11.2.jar
xwork-2.0.5.jar
ognl-2.6.11.jar
freemarker-2.3.8.jar
commons-logging-1.0.4.jar
<3>:配置web.xml 配置filter
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<4>:开发Action
1:普通的java类
2:含有execute方法
3:execute方法返回值为string
<5>:配置struts.xml
<struts>
<package name="example" extends="struts-default">
<action name="login" class="cn.com.ambow.struts2.day1.web.action.LoginAction">
<result name="success">/day1/success.jsp</result>
<result name="error">/day1/error.jsp</result>
</action>
</package>
</struts>
Struts2的后缀名为:action
Struts2的执行流程:
一个请求在Struts2框架中的处理大概分为以下几个部骤:
(1)客户端提交一个请求。
(2)请求被提交到一系列过滤器(先ActionContentCleanUp,然后其他过滤器,最后FilterDispatcher )。
(3) FilterDispatcher咨询ActionMapper是否需要调用某个Action来处理这个请求,如果ActionMapper决定需要调用某个Action, FilterDispatcher则把请求的处理交给ActionProxy。
(4) ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类
(5) ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前, ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)
(6)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。
Struts2包含User对象的两种实现:
<1>: 不实例化(注意jsp页面的属性名 user.name)
public class LoginAction {
private User user;
}
<2>: 实例化(implements ModelDriven 页面属性名为name)
public class UserLoginAction implements ModelDriven{
private User user = new User();
}
Struts2的资源访问:
request
session
application
1:与ServletApi耦合的方式访问
<1>:
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
ServletContext application = ServletActionContext.getServletContext();
<2>:
ActionContext context = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
HttpSession session = request.getSession();
ServletContext application = (ServletContext) context.get(ServletActionContext.SERVLET_CONTEXT);
<3>: public class LoginAction2 implements ServletRequestAware ,ServletContextAware {
private HttpServletRequest request;
private ServletContext application;
}
2:与ServletApi解耦的方式访问
<1>:ActionContext context = ActionContext.getContext();
Map request = (Map) context.get("request");
Map session = context.getSession();
Map application = context.getApplication();
<2>:public class LoginAction2 implements RequestAware ,SessionAware ,ApplicationAware{
private User user;
private Map request;
private Map session;
private Map application;
}
Struts2的配置
<1>:web.xml 描述相关部署的信息(框架自带但是需要自己配置)
<2>:Struts.xml :这个文件需要程序员自己写(拦截器,action)
<3>:Struts.properties:strtus2默认相关配置 比如文件上传大小 ,
国际化文件,编码
Struts.i18n.encoding
默认值为utf-8,解决乱码的时候可以尝试设置为GBK,GB2312
Struts.devMode
指定是否使用开发模式,可选的值为true和false,
默认值为false,当设置为true的时候对struts开发更为友好
Struts. i18n.reload
指定是否在每次请求时自动重新加载资源包,
如果为true则自动重新加入默认值为false
Struts.multipart.maxSize
指定允许上传文件的最大字节数,默认值为2097152
Struts.custom.i18n.resoures= testmessage,testmessage2
指定要加载国际化的资源包的文件,如果多个用逗号分开
该属性没有设置
<4>:struts-default.xml
<1>:bean
<2>:拦截器
分享到:
相关推荐
Struts2是一款非常流行的Java Web框架,用于构建企业级应用。然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3...
Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...
Struts2 项目开发 Struts2 是一个基于 Java Web 的框架,广泛应用于 Web 应用程序的开发。下面将从 Struts2 项目开发的角度,详细介绍 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点。 项目...
### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...
Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...
Struts2-showcase是一个用于演示和学习Apache Struts2框架功能的开源项目。这个压缩包“struts2-showcase.rar”包含了完整的源代码,旨在帮助开发者深入理解Struts2框架的工作原理及其各种特性。以下是对Struts2和...
从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
"struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必不可少的组件。 "Struts2"可能是项目实例代码,包括Action类、视图...
Struts2是一个非常著名的Java Web开发框架,由Apache软件基金会维护。它基于MVC(Model-View-Controller)设计模式,极大地简化了构建基于Java EE的Web应用程序的过程。本资源包含"struts2所有jar包程序文件",是...
-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...
Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...
Struts2是Apache软件基金会下的一个开源框架,主要用于构建企业级的Java web应用程序。张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置...
struts2 chm 程序包 org.apache.struts2 接口概要 接口 说明 StrutsStatics Constants used by Struts. 类概要 类 说明 RequestUtils Request handling utility class. ServletActionContext Web-specific ...
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
Struts 2是一款基于Java的开源MVC框架,它在Web应用开发中广泛使用,但同时也因其复杂的架构和历史遗留问题,成为了网络安全的焦点。这个标题提到的是一个全面的Struts 2漏洞检测工具,旨在帮助开发者和安全专家识别...
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...