struts2执行流程。资源访问等

本文详细介绍了Struts2框架的组成、执行流程、资源访问、配置方式等核心内容,帮助开发者快速上手并有效利用Struts2进行Web应用开发。

Struts2的介绍:
Struts WebWork
Struts2和Struts1: grails opentaps(ofbiz)
<1>:实现原理
Struts2的组成部分:
<1>:struts webwork ognl()
Struts2开发步骤:
<1>:jar 文件
<2>:配置相关的xml
<3>:业务逻辑开发
========================
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值